CakeDC の Search pluginで検索を実装しようとしています。この検索では、'multiple' => 'checkbox'
設定されているフィールドがあります。このフィールドを使用すると、ユーザーは複数の都市を選択できるため、都市/都市に従って結果をフィルタリングできます。私がこれに賛成したことは'type' => 'IN'
、そのフィールドの を でSearchable
Model
指定しただけ$filterArgs
です。しかし、検索/フィルタリングが行われず、すべての結果で応答しただけであることに注意してください。ここで実装した内容を明確に理解するために、コード スニペットを示します。
Model.php
public $actsAs = array(
'Search.Searchable'
);
public $filterArgs = array(
'city' => array(
'type' => 'in',
'field' => 'Model.city'
));
search_form.ctp
echo $this->Form->create('Model', array('url' => array('controller' => 'models', 'action' => 'search')));
echo $this->Form->input('city', array(
'multiple' => 'checkbox',
'options' => array(
'city1' => 'city1',
'city2' => 'city2',
'cityn' => 'cityn')
));
echo $this->Form->end('search');
ModelsController.php
public function search() {
$this->layout = 'front_common';
$this->Prg->commonProcess();
$this->Paginator->settings = array(
'conditions' => $this->Model->parseCriteria($this->Prg->parsedParams()),
'limit' => 10
);
$this->set('Data', $this->Paginator->paginate());
}
また、beforeFilter()
inを使用してwithを内ModelsController
破させようとしたことがありますが、すべての結果は同じです。これを行うための他のプラグインや、cakeDC の検索プラグインでこれを行うためのハックがあるかどうかを尋ねたいと思います。助けてください。city
array()
(,)
IN