2

我已经安装并工作了 Pagerfanta,但是我在自定义布局时遇到了困难。我在Github上读到我需要通过my_template,但是我不确定应该在哪里配置以及具体指的是什么。

自定义模板

如果要使用自定义模板,请添加另一个参数

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

理想情况下,我想拥有自己可以修改的 Twig 模板,但我不知道 Pagerfanta 是否支持这一点。这一切都是用PHP完成的吗?

4

2 回答 2

14

我认为它不支持 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') }}

这将导致显示您的自定义分页模板。

于 2016-02-19T14:15:25.360 回答
0

my_template是您的视图的别名。您提供的 Github 链接中的下一部分将解释更多信息。

它看起来像这样

services:
    app.view.my_template:
        class: App\View\MyView
        public: false
        tags: [{ name: pagerfanta.view, alias: my_template }]
于 2016-02-19T14:14:41.253 回答