2016-08-04 3 views
0

Я только что начал изучать laravel на прошлой неделе, и эта ошибка возникла, когда я попытался получить доступ к строке, используя ее id, идентификатор извлекается из URL-адреса.Laravel 5.2 неизвестный столбец при выборе из таблицы базы данных

QueryException в connection.php линии 725: SQLSTATE [42S22]: Column не найдено: 1054 Неизвестный столбец 'berita.id' в 'где предложение' (SQL: SELECT * FROM berita где beritaid = 7 предел 1.) error

Я знаю, что вы, должно быть, думаете, что у меня нет колонки «id», да, я этого не делаю. Но у меня есть столбец «id_berita», который я написал в коде вместо «id».

routes.php

Route::get('edit/{id_berita}', '[email protected]'); 

Route::get('/edit', '[email protected]'); 

RecordsController.php

public function showEdit() 
{   
    $berita=Berita::all(); 
    return view('editBerita')->with('berita',$berita);   
} 

public function edit($id_berita) 
{ 
    $berita = Berita::find($id_berita); 
    return View ('edit_form')->with('berita',$berita); 
} 

editberita.blade

@foreach($berita as $key=>$berita) 
     <tr> 
     <td>{{$berita->id_berita}}</td> 
     <td>{{$berita->judul_berita}}</td> 
     <td>{{$berita->isi_berita}}</td> 
     <td>{{$berita->tanggal_berita}}</td> 
     <td>{{$berita->tanggal_postBerita}}</td> 
     <td>{{$berita->tanggal_updateBerita}}</td> 
     <td><a class="btn btn-large btn-success" href="{{ URL::to('edit/' . $berita->id_berita) }}">Edit</a></td> 
     </tr> 
    @endforeach 

edit_form.blade

<form role="form" method="POST" action="{{ url('/edited_data',$berita->id_berita) }}"> 
       <input type="hidden" name="_token" value="{{csrf_token()}}"> 

       <div class="form-group"> 
        <label class="col-md-3 control-label">Judul:</label> 
        <div class="col-md-9"> 
         <input type="text" class="form-control" name='judul_berita' value="{{$berita->judul_berita}}"/> </br> 
        </div> 
       </div>     

ошибка происходит, когда я нажал на кнопку редактирования на editBerita.blade.

ответ

0

В модели Berita добавить protected $primaryKey = 'berita_id';

+0

он работал, спасибо большое, я пытался найти ошибку в течение 2-х дней, потому что я думал, что это просто опечатка. –

+0

Можете ли вы объяснить, почему он решил проблему? –

+0

Он устанавливает имя, которое вы использовали для первичного ключа в таблице. Если вы видите, что в классе Model, который вы наследуете, вы обнаружите, что значение по умолчанию установлено там на id, поэтому вы получили ошибку, которая отсутствует в столбце id. Laravel использует это вместо того, чтобы использовать дополнительный запрос к базе данных, чтобы найти то, что установлено как первичный ключ в таблице. – rypskar