我正在使用CakePHP搜索插件http://cakedc.com/downloads/view/cakephp_search_plugin,并希望制作一个arg来搜索我有数组filterArgs的多个字段,如下所示
var $filterArgs = array(
array('name' => 'search', 'type' => 'like', 'field' => 'Interview.title_en'),
);
我希望搜索arg不仅搜索字段Interview.title_en,还要搜索我尝试过的其他字段
var $filterArgs = array(
array('name' => 'search', 'type' => 'like', 'field' => array('Interview.title_en', 'Interview.Desc'));
但它不起作用!!
有什么建议吗?
答案 0 :(得分:4)
为了实现这一目标,您必须在模型中创建一个简单的方法,以便为搜索字段构建“OR”条件。
public $filterArgs = array(
array('name' => 'q', 'type' => 'query', 'method' => 'filterQuery'),
);
public function filterQuery($data = array()) {
if(empty($data['q'])) { // q is the name of my search field
return array();
}
$query = '%'.$data['q'].'%';
return array(
'OR' => array(
'Model.title LIKE' => $query,
'Model.description LIKE' => $query,
'Model.resources LIKE' => $query,
)
);
}