我对 orCondition 方法有疑问。我想用这个插件创建一个简单的搜索引擎,我只想在标题和描述的数据库中找到一个短语(相同或相似),我真的不知道我在做什么错. 我实现的唯一效果是,当我以与数据库中原始顺序完全相同的顺序在表单中键入标题时,我可以找到标题。例如,如果帖子的标题是“一二三”并且我输入“二”它可以工作,但如果我输入“三二”则没有结果。这是一些代码。
模型:
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'])));