[英]Checkbox value to database in laravel
在skillHandyman页面上,我有一个上一页存储的handyman_id和一个带有复选框的表格,其中包含可用的作业列表,我要做的就是使用从以下位置获取的checkbox选择的任何复选框来更新“ handymen”表中的外键job_id表“工作”。 在代码中可以看到,job_id的值位于复选框中,只需要使用它并在勤杂工中更新job_id外键即可。 我已经建立了hasMany与Jobs表之间的关系,并且从Job到勤杂工的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}}">
并在控制器中
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">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.