#laravel #pagination #laravel-collection #laravel-resource
Вопрос:
У меня есть две модели, User
и Comment
у каждой User
может быть несколько Comment
, я могу позвонить paginate(3)
User
и получить 3 User
вывода на страницу , но мне нужно то же самое, User
что и для комментариев в коллекции пользователей. Можно ли ограничить комментарии, которые приходят UserCollection
, также разбивая их на страницы?
Ответ №1:
Да, вы можете, вам просто нужно добавить третий параметр pageName в метод разбиения на страницы, чтобы различать их.
Что-то вроде:
$users->paginate($perPage, ['*'], 'users')
$comments->paginate($perPage, ['*'], 'comments_'. $user_id)
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Builder.html#method_paginate
Примечание: Хотя вы можете это сделать, я лично просто получил бы первые 3/5 комментариев, а затем написал бы кнопку, click to load more
а затем выбрал бы отдельный маршрут, который вы вызываете с помощью AJAX — запроса, чтобы получить их.
Комментарии:
1. можете ли вы сказать, какой метод лучше использовать ? какой из них стандартный ? используя ajax или используя разбиение на страницы?
2. В этом случае я бы использовал AJAX-запросы для получения любых дополнительных комментариев, потому что это в 10 раз проще, и у него будет намного более читаемый и масштабируемый код