Використання
В інших фрейморках пагінація (посторінковий виведення даних) може бути великою проблемою. Laravel робить цей процес безболісним. Фреймворк здатний сам генерувати діапазон посилань щодо поточної сторінки. Розмітка, що згенерувала, сумісна з фреймворком Twitter Bootstrap.
Використання
Є кілька способів поділу даних на сторінки. Найпростіший – використовуючи метод paginate об'єкта-побудовника запитів або у зв'язці з моделями Eloquent.
Посторінковий висновок вибірки з БД
Примітка: Якщо ви використовуєте groupBy у запиті, то вбудована пагінація Laravel буде працювати неефективно. В цьому випадку вам потрібно створити пагінатор вручну.
Створення пагінатора вручну
Іноді виникає потреба створити пагінатор вручну, передавши йому масив елементів. Зробити це можна, створивши об'єкт Illuminate\Pagination\Paginator або Illuminate\Pagination\LengthAwarePaginator залежно від завдання.
Посторінковий висновок моделей Eloquent
Аргумент, який передається методу paginate - число рядків, які ви хочете бачити на одній сторінці. Блок пагінації у шаблоні відображаються методом render:
Це все, що потрібне для створення сторінкового висновку! Зауважте, що нам не знадобилося повідомляти фреймворк про номер поточної сторінки - Laravel визначить його сам. Номер сторінки додається до URL-адреси у вигляді параметра запиту: ?page=N .
Ви можете отримати інформацію про поточне положення за допомогою цих методів:
«Спрощена пагінація»
Якщо вам потрібно виводити лише посилання «Наступна сторінка» та «Попередня сторінка», ви можете використовувати метод simplePaginate . У такому разі запит у БД буде простішим. Це корисно на дуже великих обсягах даних і там, де користувачеві потрібні першікілька сторінок немає необхідності переходити в саму глибину.
Налаштування URL для виведення посилань
Приклад вище створить посилання на кшталт такий: http://example.com/custom/url?page=2
Щоб додати до URL хеш-параметр (#xyz), використовуйте метод fragment :
Конвертація у JSON
Клас Paginator реалізує (implements) Illuminate\Contracts\Support\JsonableInterface , отже, у нього є метод toJson , який використовується для виведення інформації, що пагінується у форматі json. Крім пагінованих даних, які розташовуються в data, цей метод додає мета-інформацію, а саме: total, current_page та last_page.