【发布时间】:2013-08-19 14:57:32
【问题描述】:
使用 Laravel 4 Eloquent ORM,知道为什么以下内容会拉动每一行,而不仅仅是我要求的那一行 (book_id=3)?
if ($Book = Book::find(3)) {
return (Book::with(array('chapters.pages' => function($query)
{
$query->where('book_id', '=', 3 ); // hard-coded id for illustration purposes
})
)->get()->toJson());
}
我得到的输出是每一本书的每一章每一页。我只想拉出那本书的章节和页面。
根据documentation 我应该可以添加一个约束。好像我非常密切地关注文档。提前致谢。
【问题讨论】:
-
应该 "return ($Book::with(..." 是 "return (Book::with(..."? 即没有 $
-
它上面的行将一个 ORM 对象分配给变量 $Book,但我实际上也可以使用 Book::with(...)。刚试了一下,结果一样。我会更新问题。
-
你能发布一些你的章节模型,以及书籍、章节和页面的架构吗?