dtuct88226 2016-04-13 18:20
浏览 21
已采纳

labox中数据库的复选框值

On page skilledHandyman, I have a handyman_id stored from a previous page and a form with checkboxes with list of jobs available, what I want to do is to update foreign key job_id in "handymen" table using whatever checkbox has been selected by taking job_id from table "jobs". Value of job_id is in the checkbox as it can be seen in the code, it just has to be taken and update a job_id foreign key within handyman. I have set up relationships hasMany with jobs table and belongsTo from job to handyman. This is what I have at the moment but it obviously doesn't work as intended.

@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');
    });
}

} If any other files are needed I will update the page when requested, please help me here

  • 写回答

1条回答 默认 最新

  • douzai3399 2016-04-13 20:25
    关注

    Change this

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

    to

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

    and in the 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.'));
        }
    

    in ur routes file change the form action

    <form action="{{url('jobassign')}}" method="POST">
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀