6

Zend\Paginator を使用して、ページ分割された結果セットを作成しています。これは問題なく動作しますが、検索フォームを追加した後、2 つをうまく連携させることができません。

ページの検索フォームによって生成される URL は次のとおりです。

user/index/?searchTerm=hello

生成された URL で searchTerm を保持するように Zend ページネーターの構成を修正するにはどうすればよいですか?

私は次のようなことを望んでいました:

user/index/page/4/?searchTerm=hello

私は何が欠けていますか?


モジュール構成ルートは次のように定義されます。

'user' => array(
    'type' => 'Zend\Mvc\Router\Http\Segment',
    'options' => array(
        'route'    => '/user[/[:action[/]]][[id/:id]][/[page/:page]]',
        'defaults' => array(
            'controller' => 'Application\Controller\User',
            'action'     => 'index',
            'id'         => null,
        ),

        // the below was added to try and get the searchTerm query to be retained
        'may_terminate' => true,
        'child_routes'  => array(
            'searchTerm' => array(
                'type' => 'Query',
            ),
        ),
    ),
),

ページネーションは、ビューでこれを使用して構築されます。

echo $this->paginationControl(
        $this->users, 'sliding', array('paginator', 'User'), array('route' => 'user', 'action' => 'index')
    );

ページネーション テンプレート スニペット:

    <li>
        <a href="<?php echo $this->url($this->route, array('action' => $this->action, 'page' => $this->next), true); ?>">
            Next &raquo;
        </a>
    </li>

( 3 番目のパラメーターtrueとしてを渡すと、クエリの params が保持されるという印象を受けました。)url()

4

1 に答える 1