我收到以下错误:
SQLSTATE [42S22]:未找到列:1054未知列'books.id' 'where子句'(SQL:select * from
books
wherebooks
。id
= 98745632564限制1)
当我将id值作为id传递时。我在我的数据库中有列名bookID但在上面的错误中它比较books.id = 98745632564.我无法理解book.id来自哪里。
public function showBook($id){
$book = Book::findOrFail($id);
return $book;
}
当我使用查询传递id值时,代码完全正常
public function showBook($id){
$book = Book::where('bookID', $id)->find();
return $book;
}
答案 0 :(得分:7)
你应该设置:
protected $primaryKey = 'bookID';
在您的Book
模型中:
$book = Book::findOrFail($id);
版本工作。
方法find
或findOrFail
使用主键,默认设置为id
,因此如果您有任何自定义主键,则应在Eloquent模型中进行设置。