CakePHP搜索插件在许多领域中搜索

时间:2011-07-26 08:58:45

标签: search cakephp cakephp-1.3 cakedc

我正在使用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'));

但它不起作用!!

有什么建议吗?

1 个答案:

答案 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,
        )
    );
}