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 »
</a>
</li>
( 3 番目のパラメーターtrue
としてを渡すと、クエリの params が保持されるという印象を受けました。)url()