서 및 장 두 테이블이 있습니다. 한 권의 책에는 많은 장이 있습니다.Laravel eloquent 관련 테이블의 최신 행을 얻으십시오
도서 모델 :
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();
을하지만, 작동하지 않습니다. 챕터는 빈 배열을 반환합니다. 하위 쿼리에서 first()을 제거하면 제대로 작동합니다.
하나의 쿼리만으로이 작업을 수행 할 수있는 방법이 있습니까? 나는 관련된 모든 장을 하나 가지고 있거나 여러 개의 쿼리를 사용하고 싶지 않습니다. 기분이 좋은 유일한 방법은 입니다.에 참여하는 것이 맞습니까?
도움이 될 것입니다. 감사!
아니요, 뚜렷해야합니다. 'limit()'을 사용하거나 어쩌면보세요 (here) (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