使用自定义模板自定义Pagerfanta分页的布局
Customising the layout of Pagerfanta pagination with a custom template
我已经安装并运行了 Pagerfanta,但是我在自定义布局时遇到了困难。我在 Github 上读到我需要通过 my_template
,但是我不确定应该在哪里配置以及具体指的是什么。
自定义模板
如果您想使用自定义模板,请添加另一个参数
<div class="pagerfanta">
{{ pagerfanta(my_pager, 'my_template') }}
</div>
理想情况下,我希望有自己的可以修改的 Twig 模板,但是我不知道 Pagerfanta 是否支持这个。都在PHP完成了吗?
my_template
是您的视图的别名。您提供的 Github link 的下一部分解释了更多内容。
看起来像这样
services:
app.view.my_template:
class: App\View\MyView
public: false
tags: [{ name: pagerfanta.view, alias: my_template }]
我认为它不支持 Twig 模板,但你可以肯定地编写自定义 Template
class 来呈现你想要的分页。
假设在您的 AppBundle 中,您将需要创建 MyCustomTemplate
class,它应该扩展 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') }}
这将导致显示您的自定义分页模板。
我已经安装并运行了 Pagerfanta,但是我在自定义布局时遇到了困难。我在 Github 上读到我需要通过 my_template
,但是我不确定应该在哪里配置以及具体指的是什么。
自定义模板
如果您想使用自定义模板,请添加另一个参数
<div class="pagerfanta">
{{ pagerfanta(my_pager, 'my_template') }}
</div>
理想情况下,我希望有自己的可以修改的 Twig 模板,但是我不知道 Pagerfanta 是否支持这个。都在PHP完成了吗?
my_template
是您的视图的别名。您提供的 Github link 的下一部分解释了更多内容。
看起来像这样
services:
app.view.my_template:
class: App\View\MyView
public: false
tags: [{ name: pagerfanta.view, alias: my_template }]
我认为它不支持 Twig 模板,但你可以肯定地编写自定义 Template
class 来呈现你想要的分页。
假设在您的 AppBundle 中,您将需要创建 MyCustomTemplate
class,它应该扩展 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') }}
这将导致显示您的自定义分页模板。