0

CakePHP 検索プラグインhttp://cakedc.com/downloads/view/cakephp_search_pluginを使用しており、次のように配列 filterArgs を持っている複数のフィールドを検索する引数を作成したい

var $filterArgs = array(
      array('name' => 'search', 'type' => 'like', 'field' => 'Interview.title_en'),
    );

検索引数でフィールド Interview.title_en だけでなく、別のフィールドも検索するようにしたいのですが、次のようなものを試しました

var $filterArgs = array(
      array('name' => 'search', 'type' => 'like', 'field' => array('Interview.title_en',  'Interview.Desc'));

しかし、それは動作しません!!

助言がありますか?

4

1 に答える 1

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,
        )
    );
}
于 2011-07-26T09:04:45.550 に答える