Вот пример, просто чтобы дать вам представление о том, как я создал такую проблему.
в вашем контроллере вы всегда должны разбивать на страницы возвращенную коллекцию. Как показано ниже
$users = User::all()->paginate(100);
laravel вернет этих 20 пользователей вместе с некоторыми данными, такими как, следующий URL, предыдущий URL, current_page и т. Д. c. Эти дополнительные данные важны для того, чтобы вы знали, какой следующий URL и предыдущий URL-адрес (эти URL-адреса будут использоваться в ваших запросах API);
Теперь, после получения разбитых на страницы пользователей, вам также необходимо сосчитать общее количество пользователей и вернуть его вместе с пользователями, чтобы ваш фронт знал, сколько страниц он будет отображать. Как показано ниже
$total_users = User::all()->count();
, теперь ваш конечный контроллер будет выглядеть следующим образом.
public function getUsers() {
$users = User::all()->paginate(20);
$total_users = User::all()->count();
return compact('users', 'total_users');
}
и будет возвращать эти результаты.
users // the 20 users
total_users // the total number of users in your table
currentPage
lastPage
perPage
hasMorePages
url
nextPageUrl
firstItem
lastItem
total
count
и так, каждый когда вы нажимаете на страницы в вашей таблице данных, вам просто нужно использовать nextNagePageUrl и prevPageUrl в качестве URL в вашем запросе API.