Кастомизируем паджинатор Ларавела

 

Сегодня речь пойдет про 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

Его и нужно редактировать для видоизменения паджинатора.

Кейсы