Настройка макета пагинации Pagerfanta с помощью настраиваемого шаблона

У меня установлен Pagerfanta и работает, однако мне сложно настроить макет. Я прочитал в Github, что мне нужно пройти через my_template , однако я не уверен, где это должно быть настроено и что конкретно это относится.

Пользовательский шаблон

Если вы хотите использовать собственный шаблон, добавьте еще один аргумент

 <div class="pagerfanta"> {{ pagerfanta(my_pager, 'my_template') }} </div> 

В идеале я хотел бы иметь собственный шаблон Twig, который я могу изменить, однако я не знаю, поддерживает ли Pagerfanta это. Все ли сделано в PHP?

Я не думаю, что он поддерживает шаблоны Twig, но вы можете написать свой собственный класс Template для рендеринга нумерации страниц.

Скажем, в вашем AppBundle вам нужно будет создать класс MyCustomTemplate который должен расширить Pagerfanta \ View \ Template \ DefaultTemplate :

 <?php namespace Acme\AppBundle\Template; use Pagerfanta\View\Template\DefaultTemplate; class MyCustomTemplate extends DefaultTemplate { // override whatever you need here ... } 

затем зарегистрируйте его в файле services.yml вместе со службой просмотра:

 services: acme_app.template.my_template: class: Acme\AppBundle\Template\MyCustomTemplate pagerfanta.view.my_template: class: Pagerfanta\View\DefaultView public: false arguments: - "@acme_app.template.my_template" tags: [{ name: pagerfanta.view, alias: my_template }] 

то в ваших Twig-шаблонах вы сможете использовать:

 {{ pagerfanta(my_pager, 'my_template') }} 

что приведет к отображению вашего пользовательского шаблона разбиения на страницы.

my_template – это псевдоним вашего представления. Следующий раздел ссылки Github, который вы предоставили, объясняет больше.

Это выглядело бы примерно так

 services: app.view.my_template: class: App\View\MyView public: false tags: [{ name: pagerfanta.view, alias: my_template }]