簡體   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