У меня установлен 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 }]