如何正确地将 KNP Paginator Bundle 的分页居中?

我有一个 Symfony 5 项目,我使用KNP Paginator Bundle对一些结果进行分页。我使用@KnpPaginator/Pagination/twitter_bootstrap_v4_pagination.html.twig模板来呈现分页块。但是,我希望它以我的页面为中心。


我查看了模板,并看到了这段代码:


{% if pageCount > 1 %}

    <nav>

        {% set classAlign = (align is not defined) ? '' : align=='center' ? ' justify-content-center' : (align=='right' ? ' justify-content-end' : '') %}

        {% set classSize = (size is not defined) ? '' : size=='large' ? ' pagination-lg' : (size=='small' ? ' pagination-sm' : '') %}

        <ul class="pagination{{ classAlign }}{{ classSize }}">

        {# ... #}

因此,我使用全局 Twig 变量通过将其添加到 Twig 配置来使我的分页块居中:


# config/packages/twig.yaml

twig:

    # ...

    globals:

        align: 'center'

尽管如此,我认为这不是一个正确的方法,因为它可能会导致与其他一些捆绑包甚至我自己的代码发生冲突。我还认为覆盖模板以手动使块居中并不是一种真正正确的方法,而且我在文档中没有找到任何可以简单而优雅地做我想做的事情。不过,我想alignKNP Paginator 模板中的这个 Twig 变量可以通过其他方式设置......


如果有人有一种不那么破坏性的方式来使这个街区居中,那将很受欢迎。


侃侃尔雅
浏览 99回答 1
1回答

千万里不及你

你完全正确。这个align变量可以通过setCustomParameters方法设置。这里的例子:$pagination->setCustomParameters([&nbsp; &nbsp; 'align' => 'center', # center|right (for template: twitter_bootstrap_v4_pagination)&nbsp; &nbsp; 'size' => 'large', # small|large (for template: twitter_bootstrap_v4_pagination)&nbsp; &nbsp; 'style' => 'bottom',&nbsp; &nbsp; 'span_class' => 'whatever',]);您可以在此处找到更多详细信息:https ://github.com/KnpLabs/KnpPaginatorBundle/blob/master/docs/templates.md
打开App,查看更多内容
随时随地看视频慕课网APP