繁体   English   中英

数据库更新-找不到列Laravel

[英]Database update - column not found laravel

我收到此错误消息:

SQLSTATE [42S22]:找不到列:1054“字段列表”中的未知列“ 0”(SQL:更新handymen设置0 = job_id, 1 = 2, updated_at = 2016-04-14 09:14:49,其中id = 1 )

我的数据库结构如下所示:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateHandymenTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
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');
    });
    }
}

控制器:

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.'));
    //return view('layouts/skilledHandyman', ['jobs' => $jobs, 'skilledHandyman' => $skilledHandyman]);
}
    function skilledHandyman($handymanId)
{
    $skilledHandyman = Handyman::find($handymanId);
    $jobs = Job::all();
    return view('layouts/skilledHandyman', ['jobs' => $jobs, 'skilledHandyman' => $skilledHandyman]);
}

视图:

@extends('layouts.master')

@section('skilledHandyman')

@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('jobassign')}}" method="POST">
    {{ csrf_field() }}
     @foreach ($jobs as $job)
        <div>
            <label>{{$job->name}}</label>
            <input type='checkbox' value='{{$job->id}}' name='job_id'/>
            <input type="hidden" name="handymanid" value="{{$skilledHandyman->id}}">
        </div>
    @endforeach
    <input type="submit" name="submitBtn" value="Assign Job">
</form>
@endsection

有人可以告诉我为什么会发生这种情况以及如何解决吗?

谢谢

在更新查询中传递数组时,您在更新查询中遇到错误/错误 ,因此您需要将列定义为键

$job = Handyman::where('id', $handymanId)->update(['job_id', $job_id]);
                                                          ^^^^

应该

$job = Handyman::where('id', $handymanId)->update(['job_id' => $job_id]);
                                                           ^^^^

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM