CakePHP在两个字段中搜索

时间:2015-09-03 15:56:19

标签: php cakephp

我有一个搜索输入来搜索标题字段,我想在titledescription字段中使用相同的输入进行搜索,它是否可用?

这是我的搜索功能:

$query = $this->request->query['search'];
$category_id = $this->request->query['category_id'];
$multimedia_type_id = $this->request->query['multimedia_type_id'];

$conditions = array(

  'conditions' => array(            
   'and' => array()));

  if ($query) $conditions['conditions']['and']['Multimedia.title LIKE' ] = "%$query%";
        if ($category_id) $conditions['conditions']['and']['Multimedia.category_id'] = $category_id ;
        if ($multimedia_type_id) $conditions['conditions']['and']['Multimedia.multimedia_type_id'] = $multimedia_type_id ;

我想同时在titlesdescription上搜索

1 个答案:

答案 0 :(得分:2)

您想说的是您需要使用说明或标题进行搜索。那是OR而不是and。然后将此OR与额外and合并。

所以检查一下:

$conditions = array(
   'AND' => array(
       'OR' => array(
           'Multimedia.title LIKE' => "%$query%",
           'Multimedia.description LIKE' => "%$query%",
        ),
        'AND' => array(
           'Multimedia.multimedia_type_id' => $multimedia_type_id
           'Multimedia.category_id' => $category_id
        )
    )
);