разбиение реляционного ресурса на страницы в laravel api

#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 раз проще, и у него будет намного более читаемый и масштабируемый код