Сегодня речь пойдет про paginator. В Ларавеле есть встроенный функционал паджинатора. Для удобного постраничного разбиения вывода данных необходимо прописать вызов паджинатора в контроллере и шаблонах блейд.
Простейший пример паджинации осуществляется следующим образом. В нужном нам контроллере прописываем метод paginate()
//любой файл контроллера, например /app/Http/Controllers/ProductsController.php $products = Product::paginate(15)
Для вывода паджинации в шаблоне прописываем в нужный нам файл шаблонизатора, например index.blade метод links() таким образом
//любой файл шаблонизатора, например /resources/views/products/index.blade.php {{ $products->links() }}
В принципе на этом paginator подключен и работает. Остается только вопрос как его кастомизировать под нужды проекта?
Базовый шаблон паджинатора зашит в системе где-то в папке /vendor/... Даже не знаю где и не хочу даже думать об этом, потому что лезть туда и что-то там править крайне не рекомендуется.
Нам нужно просто вынести шаблон паджинатора в рабочую область проекта и там уже можно делать с ним все что вздумается. Для этого необходимо выполнить консольную команду:
//вызывается из консоли (SSH) php artisan vendor:publish --tag=laravel-pagination
Если все пройдет успешно, то в папке /test1/resources/views/vendor появится новая директория /pagination в которой будут файлы паджинатора, которые можно править по своему усмотрению.
Стоит отметить, что лично я предпочитаю работать с bootstrap. И паджинатор Laravel тоже хочу видеть в виде bootstrap по умолчанию. Для реализации этой цели в сервис провайдере необходимо назначить соответствующий метод:
//файл /app/Providers/AppServiceProvider.php public function boot() { Paginator::useBootstrap(); }
Прописанный выше код укажет Laravel что в качестве шаблона для паджинатора по умолчанию надо использовать файл /resources/views/vendor/pagination/bootstrap-4.blade.php
Его и нужно редактировать для видоизменения паджинатора.