2016-08-04 24 views
0

Ich habe gerade Laravel letzte Woche gelernt, und dieser Fehler trat auf, wenn ich versuchte, auf eine Zeile zuzugreifen mit seiner ID, die ID wird von der URL abgerufen.Laravel 5.2 unbekannte Spalte bei der Auswahl aus der Datenbanktabelle

QueryException in Connection.php Linie 725: SQLSTATE [42S22]: Säule nicht gefunden: 1054 Unknown column 'berita.id' in 'WHERE-Klausel' (SQL: select * from berita wo beritaid = 7 Grenze 1.) error

Ich weiß, Sie müssen denken, dass ich nicht "ID" Spalte habe, ja ich nicht. Aber ich habe "id_berita" Spalte, die ich in den Code statt "ID" geschrieben habe.

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>     

der Fehler passiert, wenn ich auf die Schaltfläche Bearbeiten auf editBerita.blade geklickt.

Antwort

0

In Ihrem Berita Modell hinzufügen protected $primaryKey = 'berita_id';

+0

es funktioniert, vielen Dank, ich habe versucht, den Fehler für 2 Tage zu finden, weil ich dachte, es war nur ein Tippfehler. –

+0

Können Sie erklären, warum das Problem gelöst wurde? –

+0

Er legt den Namen fest, den Sie für den Primärschlüssel in der Tabelle verwendet haben. Wenn Sie in der Model-Klasse sehen, von der Sie erben, finden Sie, dass der Standardwert dort auf id gesetzt ist, weshalb Sie den Fehler bekommen haben, dass die ID-Spalte fehlt. Laravel verwendet dies, anstatt eine zusätzliche Abfrage an die Datenbank zu verwenden, um herauszufinden, was als Primärschlüssel in der Tabelle eingestellt ist. – rypskar