柱未找到laravel 5.4

时间:2017-04-18 17:16:48

标签: laravel laravel-5 eloquent laravel-5.4

我收到以下错误:

  

SQLSTATE [42S22]:未找到列:1054未知列'books.id'   'where子句'(SQL:select * from books where booksid =   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;
}

1 个答案:

答案 0 :(得分:7)

你应该设置:

protected $primaryKey = 'bookID';

在您的Book模型中:

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

版本工作。

方法findfindOrFail使用主键,默认设置为id,因此如果您有任何自定义主键,则应在Eloquent模型中进行设置。