@NubasLol

Laravel как сделать что бы в ресурсы отдавалась пагинация, загруженных связей?

Возможно ли в ресурсы отдавать пагинацию модели reviews?

$model->with(['reviews' => function($query){
            return $query->paginate();
        }]);
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
Alex_Wells
@Alex_Wells
PHP/Kotlin
Так делать нельзя. ->with() - это магия, которая сама разбирается с тем, как ей вытаскивать данные. Вы указываете нужные условия в колбеке, но далее ->with() вызывает ->get() и сам все разруливает. К тому же get возвращает EloquentCollection, на котором и основана вся дальнейшая работа с реляциями, а своими действиями вы пытаетесь подсунуть ему обьект пагинации. Очевидно, что такое работать не будет.

Ваша переменная называется model, так что я предположил что там она одна. В таком случае такой вариант прокатит:
$reviews = $model->reviews()->paginate();

Если же нужно сделать такое для нескольких моделей сразу, то это делается только отдельными запросами. ->with() там тоже не поможет, только в цикле вышеуказанный код.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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