@kirill-93

Laravel limit для with?

Category::with(['products' => function($query) {
    $query->take(3);
}])->where('type', 1)->get();

Вот таким образом я пытаюсь выбрать по 3 продукта для каждой категории. Но код не работает.
Как указать лимит для with?
  • Вопрос задан
  • 2064 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Kraky
Вы не можете этого сделать в Eloquent. По сути вы достаете только 3 категории. Поэтому, если товаров не много можете выбрать категории, а затем сделать map по коллекции и убрать ненужные товары. Либо можете сделать что-то типа:
$categories = Category::where('type', 1)->get();
$categories->each(function($category) {
    $category->products()->take(3)->get();
});

Это вызовет доп. запросы для каждой категории...
Ответ написан
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы