cna*_*yak 1 laravel eloquent laravel-5 laravel-5.4
我收到以下错误:
SQLSTATE [42S22]:未找到列:1054'where子句'中的未知列'books.id'(SQL:select*from
books
wherebooks
.id
= 98745632564 limit 1)
当我将id值作为id传递时.我在我的数据库中有列名bookID但在上面的错误中它比较books.id = 98745632564.我无法理解book.id来自哪里.
public function showBook($id){
$book = Book::findOrFail($id);
return $book;
}
Run Code Online (Sandbox Code Playgroud)
当我使用查询传递id值时,代码完全正常,如下所示
public function showBook($id){
$book = Book::where('bookID', $id)->find();
return $book;
}
Run Code Online (Sandbox Code Playgroud)
你应该设置:
protected $primaryKey = 'bookID';
Run Code Online (Sandbox Code Playgroud)
在你的Book
模型中:
$book = Book::findOrFail($id);
Run Code Online (Sandbox Code Playgroud)
版本工作.
方法find
或findOrFail
正在使用主键,默认设置为id
,因此如果您有任何自定义主键,则应在Eloquent模型中进行设置.
归档时间: |
|
查看次数: |
484 次 |
最近记录: |