2015-09-03 41 views
-2

我有一个搜索输入来搜索标题字段,我想通过titledescription字段搜索具有相同输入的字段,这是可行的吗?CakePHP在两个字段中搜索

这是我的搜索funtion:

$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 ; 

我想在同一时间

回答

2

你想怎么说就titlesdescription搜索的是,你需要可以与描述或搜索标题。这是一个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 
     ) 
    ) 
); 
+0

我必须把这个: 'Multimedia.title', 'Multimedia.description' 数组里面()? – GusDev

+0

是的......为什么不呢? – gmponos

+0

它的工作原理,谢谢 – GusDev