コントローラーには2つのアクションがあります。フォームを表示し、関連する HABTM モデルからフォーム フィールドのリストを取得する最初のアクション。検索を実行して結果を表示する 2 番目のアクション。
最初のアクション:
public function advancedSearch() {
$this->set($this->Restaurant->fetchRelatedData());
}
また、次のフォームを表示するこのアクションのビューがあります: advancedSearch.ctp
echo $this->Form->create(null, array(
'type' => 'get',
'url' => '/restaurants/search', 'inputDefaults' => array(
'label' => false,
'div' => false
)));
echo $this->Form->input('companyname', array('label' => 'Name:'));
echo $this->Form->input('addr', array('label' => 'Address:'));
echo $this->Form->input('district_id', array('label' => 'District:'));
echo $this->Form->input('Station', array('label' => 'Subway station(s):'));
// etc.
echo $this->Form->end('Go!');
ご覧のとおり、このフォームは、実際の検索を実行する 2 番目のアクションにデータを送信します。検索アクションでページネーション コンポーネントを使用していることに言及する必要があります。このため、GET メソッドを使用します。
私の問題は、ユーザーがいくつかの「単純な」フィールドといくつかの複数選択フィールドを選択し、フォームを送信してから、検索結果を絞り込みたい場合があることです。そのため、データをフォームに戻し、ユーザーが以前に選択した値をフィールドに入力する機能を実装する必要があります。どうやってやるの?ありがとう。