Skip to content

Пагинация ​

php
public function pagination(): Pagination
{
    return Pagination::make(default: 20, max: 100);
}

или, на запросе, ->pagination(default: 20, max: 100).

Тогда запрос клиента может передать page и per_page:

GET /users?page=3&per_page=50

Оба проверяются вместе с остальным запросом (page от 1, per_page от 1 до максимума), и paginate() или simplePaginate() без явного размера страницы используют их. Ссылки пагинации сохраняют строку запроса.

Имена параметров ​

php
Pagination::make(pageParameter: 'p', perPageParameter: 'pageSize')

читает номер и размер страницы под другими именами — для API, где они уже используются. Ссылки и сообщения об ошибках следуют за ними.

Ограничение номера страницы ​

php
Pagination::make(maxPage: 500)

ограничивает page для списков, где глубокие смещения дороги. Страница, смещение которой ((page - 1) × per_page) не помещается в целое число, отклоняется всегда.

Поиск по ключу ​

find(), findOrFail(), findMany() и подобные применяют фильтры, поля и подгрузки связей из запроса клиента, но не порядок его сортировок, который для них ничего не значит.