php - Laravel 中数据库的复选框值

标签 php mysql laravel laravel-5

在 SkillHandyman 页面上,我有一个从上一页存储的 Handyman_id 和一个带有复选框的表单,其中包含可用工作列表,我想要做的是使用已选择的任何复选框来更新“Handymen”表中的外键 job_id从表“jobs”中获取 job_id。正如在代码中可以看到的那样,job_id 的值位于复选框中,只需在handyman 中获取并更新 job_id 外键即可。我已经与工作表建立了 hasMany 关系,并从工作到杂工建立了belongsTo关系。这就是我目前所拥有的,但它显然没有按预期工作。

@extends('layouts.master')

@section('skilledHandyman', 'Add Job')
        @section('header2')
            <ul>
                <li><a href="{{url('assignjob')}}">Assign job</a></li>
            </ul>
        @show
@section('content')
    <h1>Handyman details</h1>
<ul>
    <li>First Name:{{$skilledHandyman->first_name}}</li>
    <li>Last Name:{{$skilledHandyman->last_name}}</li>
    <li>Street:{{$skilledHandyman->street}}</li>
    <li>Postcode:{{$skilledHandyman->postcode}}</li>
    <li>Town:{{$skilledHandyman->town}}</li>
    <li>Skills:{{$skilledHandyman->skills}}</li>
</ul>

    <form action="{{url('skilledHandyman')}}" method="POST">
    {{ csrf_field() }}
     @foreach ($jobs as $job)
        <div>
            <label>{{$job->name}}</label>
            <input type='checkbox' value='{{$job->id}}' name='jobs[]'/>
        </div>
    @endforeach
    <input type="submit" name="submitBtn" value="Assign Job">
</form>
@endsection
<小时/>
function jobassign(Request $request, $id)
{
    $job = Handyman::where('handyman_id', $handymanId)->update(['job_id', $request->job_id]);
    return redirect()->back()->with('status', trans('Handyman has been successfully assigned to this job.'));
}
function skilledHandyman($handymanId)
{
    $skilledHandyman = Handyman::find($handymanId);
    $jobs = Job::all();
    return view('layouts/skilledHandyman', ['jobs' => $jobs, 'skilledHandyman' => $skilledHandyman]);

}

Route::group(['middleware' => ['web']], function () {

Route::get('home', 'HandymanController@home');

Route::get('search', 'HandymanController@search');

Route::get('details/{skill}', 'HandymanController@details');

Route::get('skilledHandyman/{handymanId}', 'HandymanController@skilledHandyman');

Route::post('jobassign', 'HandymanController@jobassign');

//Route::get('assignjob/{handymanId}', 'HandymanController@assignJob');

Route::get('addjob', 'HandymanController@addJob');

Route::post('addjform', 'HandymanController@addjForm');

Route::get('jobs', 'HandymanController@jobs');

Route::get('jobsdetails/{jobId}', 'HandymanController@jobsdetails');

Route::get('deletejob', 'HandymanController@deleteJob');

Route::post('deletejform', 'HandymanController@deletejForm');

});

public function up()
{
    Schema::create('handymen', function (Blueprint $table) {
        $table->increments('id');
        $table->string('first_name');
        $table->string('last_name');
        $table->string('street');
        $table->string('postcode');
        $table->string('town');
        $table->string('skills');


        $table->integer('job_id')->unsigned();
        $table->foreign('job_id')->references('id')->on('jobs')->onDelete('cascade');


        $table->timestamps();
        });
    }
----

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('handymen', function (Blueprint $table) {
        $table->dropForeign('handymen_job_id_foreign');
        $table->dropColumn('job_id');
    });
}

} 如果需要任何其他文件,我将根据要求更新页面,请在此处帮助我

最佳答案

更改此

 <input type='checkbox' value='{{$job->id}}' name='jobs[]'/>

  <input type='checkbox' value='{{$job->id}}' name='job_id'/>
 <input type="hidden" name="handymanid" value="{{$skilledHandyman->id}}">

以及在 Controller

    function jobassign(Request $request)
    {
         $job_id = $request->input('job_id');
         $handymanId = $request->input('handymanid');
        $job = Handyman::where('id', $handymanId)->update(['job_id', $job_id]);
        return redirect()->back()->with('status', trans('Handyman has been successfully assigned to this job.'));
    }

在你的路由文件中 更改表单操作

<form action="{{url('jobassign')}}" method="POST">

关于php - Laravel 中数据库的复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36606471/

相关文章:

php - 如果条目匹配 PHP 数组,Jquery 更改输入背景颜色?

php - bind_result 上允许的字节内存大小耗尽

php - 我怎样才能在 php-fpm 后面的 docker 中获取 laravel 的日志?

php - Laravel seeder 是否覆盖整个表

php - 在 php/mysql 表中使用多重连接作为对象或类似的东西

php - 根据特定列中存在的值对表进行排序

javascript - 使用 PHP 将 MySQL 行解析为 JavaScript

java - Hibernate逆向工程-多对多关系

mysql - 图和关系数据模型

php - Laravel 5 在 POST 状态 302 找到