2017-04-18 7 views
1

gefunden bekomme ich folgende Fehlermeldung:Säule nicht Laravel 5.4

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'books.id' in 'where clause' (SQL: select * from books where books . id = 98745632564 limit 1)

wenn ich id-Wert als ID übergeben. Ich habe den Spaltennamen bookID in meiner Datenbank, aber im obigen Fehler wird books.id = 98745632564 verglichen. Ich konnte nicht verstehen, woher book.id kommt.

public function showBook($id){ 
    $book = Book::findOrFail($id); 
    return $book; 
} 

Der Code funktioniert völlig in Ordnung, wenn ich id-Wert mit der Abfrage übergeben als

public function showBook($id){ 
    $book = Book::where('bookID', $id)->find(); 
    return $book; 
} 

Antwort

6

folgt sollten Sie setzen:

protected $primaryKey = 'bookID'; 

in Ihrem Book Modell zu machen:

$book = Book::findOrFail($id); 

Version wo rk.

Methoden find oder findOrFail werden mit Primärschlüsseln und dies ist standardmäßig auf id, also wenn Sie beliebigen benutzerdefinierten Primärschlüssel haben, sollten Sie es in Ihrem Eloquent Modell gesetzt.

+0

danke das hat funktioniert. – cnayak