У меня есть две таблицы - Categories
и Posts
. Отношения между ними - один-ко-многим. i.e - В категории есть много сообщений.Как получить последнее n число связанных записей модели в laravel
Я пытаюсь получить список всех Categories
с их последние 3 сообщений
Я попытался это: -
$with = array('posts' => function($query) {
$query->take(3);
$query->orderBy('created_at', 'desc');
$query->addSelect(array('name', 'excerpt','category_id'));
});
$categories = Category::with($with)->get();
Но это, кажется, работает только для первой категории, последующие категории пусты.
попробуйте использовать 'toSql()' вместо 'получить()', чтобы сбросить запрос – Luceos
@Luceos тот странно - запрос просто показывает, как 'select * from categories'. – ghosh
Что происходит, когда вы делаете '$ with = array ('posts' => function ($ query) { $ query-> addSelect (array ('name', 'excerpt', 'category_id')) -> take (3) -> orderBy ('created_at', 'desc'); }); ' – Luceos