2016-04-14 2 views
0

я получаю сообщение об ошибке:базы данных - столбец не найден Laravel

SQLSTATE [42S22]: Column не найдено: 1054 Unknown столбца '0' в поле ' списка' (SQL: обновление handymen набор 0 = job_id, 1 = 2, updated_at = 2016-04-14 9: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 

Может кто-нибудь сказать мне, почему это происходит и как это исправить, пожалуйста?

Спасибо

ответ

2

У вас есть ошибку/опечатку в запросе обновления, как вы проезжали массив в запросе обновления, так что вы должны определить столбцы как ключи

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

должны быть

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

Благодарим вас за любые орфографические ошибки –

+0

Добро пожаловать. Рад, что это тебе помогло. –

Смежные вопросы