我有兩張表,本本和本章。一本書有很多章節。Laravel雄辯地得到最新一排相關表
Book模型:
public function chapters() {
return $this->hasMany(Chapter::class);
}
章模型:
public function book() {
return $this->belongsTo(Book::class);
}
我想用一個這樣的查詢來獲得自己的最新章節書單:
$books = Book::with(['authors', 'categories', 'chapters' => function($q) {
$q->orderBy('updated_at', 'desc')->first();
}]->get();
但不起作用。章節返回一個空數組。如果我刪除在子查詢中的第一個(),它可以正常工作。
有沒有什麼辦法只用一個查詢來做到這一點。我不想獲得所有相關章節,然後保留一個,或者使用多個查詢。我感覺更好的唯一方法是使用加入,是不是?
任何幫助將不勝感激。謝謝!
不,言語應該就夠了。怎麼使用'limit()'或者看看[這裏](http://stackoverflow.com/questions/15229303/is-there-a-way-to-limit-the-result-with-eloquent-orm -of-laravel)。你需要做的是限制'$ q-> orderBy('updated_at','desc')'爲1. – Alex
一本書可能有超過5k章節,我應該取所有它們,內存問題? – trinvh
您需要**將查詢限制爲只有一行。 – Alex