5

レンダリング方法

1 2 3 > >> (page numbers, next button, last page button)

レンダリングに必要な方法

> (only next button)

twig ファイルで render メソッドがトリガーされる方法

<div class="pagination">
   {{ knp_pagination_render(pagination) }}
</div>

多分これが役立つでしょう、これはknpページネーターソースコード内のrender関数です

    /**
     * Renders the pagination template
     *
     * @param string $template
     * @param array $queryParams
     * @param array $viewParams
     *
     * @return string
     */
    public function render($pagination, $template = null, array $queryParams = array(), array $viewParams = array())
    {
        return $this->environment->render(
            $template ?: $pagination->getTemplate(),
            $this->processor->render($pagination, $queryParams, $viewParams)
        );
    }

   /**
   * Get name
   *
   * @return string
   */
   public function getName()
   {
      return 'knp_pagination';
   }

Web サイトには数千 (おそらく数百万) の写真があるため、ページ番号を削除し、ユーザーが無限スクロールの最後に到達したときにのみ「次へ」ボタンを表示する必要があります。

4

1 に答える 1

16

これを行う 1 つの方法は、twig ファイルをオーバーライドすることです。ファイル slide.html.twig を見つけて app/Resources/KnpPaginatorBundle/views/Pagination にコピーし、不要なものをすべて削除します。

次と前のボタンのみが必要な場合の解決策は次のとおりです。

{# default Sliding pagination control implementation #}

{% if pageCount > 1 %}
<div class="pagination">
    {% if previous is defined %}
        <span class="previous">
            <a href="{{ path(route, query|merge({(pageParameterName): previous})) }}">&lt;</a>
        </span>
    {% endif %}

    {% if next is defined %}
        <span class="next">
            <a href="{{ path(route, query|merge({(pageParameterName): next})) }}">&gt;</a>
        </span>
    {% endif %}
</div>

もちろんキャッシュもクリア。

于 2014-04-24T14:53:14.813 に答える