orCondition メソッドに問題がありました。このプラグインを使用して単純な検索エンジンを作成したいのですが、タイトルと説明でデータベースにある場合にフレーズ (同じまたは類似) を見つけたいだけですが、何が間違っているのか本当にわかりません。 . 私が達成した唯一の効果は、元のデータベースとまったく同じ順序でフォームに入力したときにタイトルを見つけることができることです. たとえば、投稿のタイトルが「One two three」で「two」と入力すると機能しますが、「three two」と入力すると結果はありません。ここにいくつかのコードがあります。
モデル:
public $actsAs = array('Search.Searchable');
public $filterArgs = array(
'title' => array('type' => 'query', 'method' => 'orConditions'),
'status' => array('type' => 'value'),
'category' => array('type' => 'value'),
'country' => array('type'=>'value'),
'continent' => array('type'=>'value'),
'cycle' => array('type'=>'value'),);
...
public function orConditions($data = array()) {
$title = $data['title'];
$cond = array(
'OR' => array(
$this->alias . '.title LIKE' => '%' . $title . '%',
$this->alias . '.description LIKE' => '%' . $title . '%',
));
return $cond;
}
意見:
echo $this->Form->create('Ad', array('url' => array_merge(array('action' => 'index'), $this->params['pass'])));