Для реализации пагинации в модели Laravel вам понадобится использовать встроенные методы paginate()
или simplePaginate()
. Выбор конкретного метода будет зависеть от ваших потребностей и предпочтений.
Метод paginate()
осуществляет пагинацию на основе набора данных, возвращаемого моделью, и автоматически создает ссылки на предыдущую и следующую страницы, а также на указанный номер страницы. Этот метод принимает единственный аргумент - количество элементов, отображаемых на одной странице.
Вот пример реализации пагинации в модели Laravel с использованием метода paginate()
:
namespace App; use IlluminateDatabaseEloquentModel; class Post extends Model { public function getPaginatedPosts($perPage) { return $this->paginate($perPage); } }
В приведенном выше примере, метод getPaginatedPosts()
возвращает коллекцию постов, разделенных на страницы. Метод paginate()
используется для обработки пагинации и принимает аргумент $perPage
, указывающий количество постов, который будет отображаться на одной странице.
Если вам нужно более простое представление пагинации без ссылок на предыдущие и следующие страницы, вы можете использовать метод simplePaginate()
:
namespace App; use IlluminateDatabaseEloquentModel; class Post extends Model { public function getSimplePaginatedPosts($perPage) { return $this->simplePaginate($perPage); } }
Метод getSimplePaginatedPosts()
также возвращает коллекцию постов, разделенных на страницы, но использует метод simplePaginate()
для более простого представления пагинации.
При использовании пагинации в модели, Laravel автоматически генерирует ссылки на страницы, которые могут быть просто добавлены в ваш шаблон для отображения.
Вот пример использования пагинации в представлении Blade:
@extends('layouts.app') @section('content') <div class="container"> @foreach ($posts as $post) {{-- Отображение постов --}} @endforeach </div> <div class="pagination"> {{ $posts->links() }} </div> @endsection
В приведенном выше примере, $posts
- это коллекция постов, полученная из вашей модели, и метод links()
используется для вывода ссылок на страницы пагинации.
Таким образом, вы можете легко реализовать пагинац