Ограничивать число результатов отношения с ORM laravel

я имею по отношению ко многим отношение многих с пластиной Категорий и Business и хочу получить категории, наиболее посещенные вместе с Business, связанными с категорией, но только хочу принести первые 5 записей Business.

Я это попробовал следующего способа:

** Я использую хранилища и $this = Category:: class

return $this->with(['businesses' => function ($query) {
       $query->orderBy('views', 'desc')->take(10);
    }])
        ->orderBy('views', 'desc')->limit(3)->get();

я это попробовал также с take(), добавляя Вас get() в конце концов и также помещая return сначала но только меня возвращает 1 результат, если я прекращаюсь take() Вы возвращаете мне 55 результатов. HELP и заранее большое спасибо

1
задан 06.11.2019, 01:37
1 ответ
  • В твоей консультации, если ты хочешь взять только 5 первых, ты можешь axuliarte take(), чтобы брать только 5 реестров
  • Для того, чтобы ты был самыми недавними 5, можешь писать укороченной формы использование mГ©todo latest() только, что ты перемещаешь его как аргумент колонну, из-за которой он делает работу

, я не вижу необходимость того, чтобы, если внутри нее funciГіn anГіnima уже ты возвращаешь 5 самую недавнюю стоимость, despuГ©s снаружи нового ты старался применять распоряжение и limit в полученных результатах.

Ты cГіdigo (что уже я протестировал в примере в помещении) , он мог оставаться asГ-:

return $this->with(['businesses' => function ($query) {
   $query->latest('views')->take(5);
}])->get();

Уже с предыдущей консультацией estarГ-схвати получая только 5 самых недавних реестров, ассоциируемых с моделью Business с помощью mГ©todo businesses

0
ответ дан 01.12.2019, 12:39