#laravel #datatables #pagination
#laravel #таблицы данных #разбивка на страницы
Вопрос:
Как я могу контролировать размер страницы на стороне сервера при использовании таблиц данных? Я хочу воспользоваться преимуществами встроенных кнопок навигации (предыдущий, следующий и т.д.), Но не хочу, чтобы клиенты могли указывать размер страницы.
Единственный вариант, который я вижу, это pageLength
который контролирует размер страницы со стороны клиента, что в моем случае противоречит цели.
Это приложение Laravel, и я использую реализацию пакета Yajra (таблицы данных как сервис). Обратите внимание, что я не могу использовать встроенную разбивку на страницы Eloquent, потому что тогда мне придется управлять навигацией самостоятельно, а также нужно будет отключить собственную навигацию DataTable, потому что это зависит от pageLength
.
Ответ №1:
Хороший способ — удалить текущий размер страницы в таблице данных, добавив значение подкачки false в параметрах таблицы данных.
Тогда вы можете выполнить разбивку на страницы, просто добавив класс разбиения на страницы laravel при перетаскивании данных из ваших моделей. Например
$all_items = модель пользователя::разбиение на страницы($page_size,[‘*’],’page_no’);
Последняя переменная метода paginate просто указывает имя параметра для номера страницы. Полезно, когда у вас на странице больше, чем разбивка на страницы. Его можно изменить на любое уникальное значение, которое вам нравится.