У меня простые отношения Laravel между моделями Category и Article.Мне нужно вернуть список всех категорий с соответствующими статьями.
Данные испытаний: 3 категории и 15 статей (5 статей в каждой категории).
Ожидаемый результат: сборник всех категорий с 2 последними соответствующими статьями для каждойкатегория
По умолчанию я должен использовать что-то вроде:
Category::with('articles')->get();
Все нормально - у меня есть 3 категории.Каждая категория имеет «отношения» с 5 связанными записями.
Далее я попробовал:
Category::with(['articles' => function ($query) {
$query->orderBy('created_at', 'desc');
$query->limit(2);
}])->get();
Но это неправильный путь.Эта конструкция в «сыром» запросе выглядит следующим образом:
select * from `articles` where `articles`.`category_id` in (select id from categories) limit 2
Так что он дал мне неверный результат, как и ожидалось ...
Мне нужны все категории и последние 2 статьи для каждой категории (3 * 2 =6 записей) этот запрос вернул только 2 записи