私はcakePHPを使用しており、クリックして別のページに移動したときに、paginatorコンポーネントを取得してget変数またはpassedargsを渡そうとしています。返された結果を「フィルタリング」するさまざまな検索入力セレクターがあります。これは最初のビューで機能しますが、別のページをクリックすると、すべての結果が表示されます。
私のページネーターには次の設定があります。
// In my controller class:
public $paginate = array('maxLimit' => 10, 'paramType' => 'querystring');
// Within my action method:
$this->paginate = array('conditions' => array(...),
order => array('Model.field ASC'),
'limit' => 20
);
// Calling the paginator:
$results = $this->paginate('Model');
$this->set(compact('results'));
私のビューファイル:
<div class="paging">
<?php
echo $this->Paginator->prev('< ' . __('previous'), array(), null, array('class' => 'prev disabled'));
echo $this->Paginator->numbers(array('separator' => ''));
echo $this->Paginator->next(__('next') . ' >', array(), null, array('class' => 'next disabled'));
?>
</div>
編集: 私の理解から、passedArgsを使用する方が良いですが、これを行う方法については少しわかりません。$ this-> passedArgsは結果を返さないので、コントローラーの例で渡されたパラメーターを作成しています。また、フォームをGetからPostに変更しました。
$this->passedArgs["searchfield"] = $_POST["value"];
これで、passedArgsがページングストリップで正しく渡されますが、ページング条件配列を作成する方法がわかりません。ほとんどの場合、ユーザーはデフォルト値の例を選択しません。フィルターの1つはdatefromとdatetoで、次に検索入力ボックスです。日付を残すと、まだ引数が作成され、結果が返されないため、基本的にURLが返されます。次のようになります:
http://localhost/site/controller/action/page:3/datefrom:0/dateto:0/searchFor:survey
何か助けはありますか?