В Laravel отличная библиотека страничного вывода, потому что страничный вывод является одной из основных задач, а библиотека берёт на себя почти всю работу. Раньше изменять свои шаблоны страничного вывода было так же просто, как и работать с самой библиотекой. Но в целях упрощения экспорта библиотеки страничного вывода в проекты на других фреймворках, в Laravel 5.0 (а может и раньше) появилась намного более сложная - но более переносимая - система шаблонов страничного вывода. К счастью, в Laravel 5.3 всё стало так, как раньше - легко и просто. {{CUT}} == Как работает страничный вывод в Laravel == Для тех, кто не знаком со страничным выводом Laravel, вот краткий обзор того, как он работает. %% // файл с маршрутами Route::get('tasks', function () { return view('tasks.index') ->with('tasks', Task::paginate(10)); }); %% %% // resource/views/tasks/index.blade.php @foreach ($tasks as $task) @endforeach {{ $tasks->links() }} %% По умолчанию метод %%paginate()%% на ваших объектах Eloquent читает параметры вашего запроса и определяет, на какой странице вы находитесь. В данном примере он прочитает параметр %%(t)?page%% и возьмёт 10 записей для этой страницы. Он передаст эти 10 записей, и когда мы пойдём циклом %%foreach%% по переменной %%$tasks%%, то цикл будет идти по этим 10 записям. Но если вы получите эти 10 записей с помощью именно %%paginate()%%, вместо чего-то наподобие %%all()%%, то вам будет доступен новый метод на объекте %%$tasks%% (или другом результате Eloquent) - это метод %%links()%%, он возвращает строку представления, предназначенную для вывода списка кнопок перехода по страницам: %%(html) %% == Настройка шаблона страничного вывода в Laravel 5.3 == Хорошо, давайте приступим к делу. Как настроить этот шаблон в 5.3? Отвечающий за отрисовку шаблон по умолчанию находится в компоненте %%Illuminate\Pagination%% в файле %%(t)resources/views/bootstrap-3.blade.php%%. Сейчас он выглядит так: %%(html) %% Для настройки страничного вывода есть два способа: публиковать встроенное представление и редактировать его, или создать новый файл и вручную привязать %%Paginator%% к нему. === Публикация файлов === Наверное самый простой способ - выполнить %%(sh)php artisan vendor:publish%%. Эта команда опубликует шаблон в %%(t)vendor/pagination%%, и вы сможете просто отредактировать его там. Этот вариант предпочтительнее, когда вам не нужны какие-либо специфические настройки. === Ручная привязка файлов === Вы можете создать свой собственный файл страничного вывода и привязаться к нему вручную. Создайте новый файл, дублирующий оригинал, и отредактируйте его в соответствии с вашими задачами. Сохраните его куда-нибудь в %%(t)resources/views%%. Пока для простоты используем %%(t)resources/views/partials/pagination.blade.php%%. Теперь зарегистрируем его. Запустите %%\Illuminate\Pagination\LengthAwarePaginator::defaultView('partials.paginator')%% в методе %%boot()%% поставщика услуг (service provider). ##(alert) Если вы хотите настроить шаблон только для одного конкретного %%Paginator%%, вы можете передать имя представления в метод %%links()%%: %%{{ $users->links('partials.paginator') }}%% ## == Резюме == Итак, для того, чтобы это всё заработало, я сделал следующее: 1. Клонировал самую свежую версию Laravel 5.3 2. Выполнил Composer install 3. Выполнил %%(sh)php artisan vendor:publish%% 4. Отредактировал %%(t)resources/views/vendor/pagination/default.blade.php%% и настроил его на свой вкус Вот и всё! .(alert) Эта инструкция показывает, как настроить %%(t)Paginator%% с известной длиной, который встречается чаще всего. Но если вы работаете с простым %%Paginator%%, то его тоже можно настроить - в качестве основы используйте файл %%(t)simple-default%% вместо %%(t)default%%.