我试图通过Like %% search获得与那些id(1,2,3)匹配的多个字段。 我试着让它工作两个小时,但它看起来很简单但没有用。
$ids = array ('1','2','3');
$result = $this -> Model -> find ('all', array(
'conditions' => array( 'Model.category LIKE' => '%'.$ids.'%')
));
我需要别人的帮助。
答案 0 :(得分:1)
我建议你建立条件'阵列分开。例如:
$ids = array ('1','2','3');
$conditions = array();
foreach($ids as $id){
$conditions['OR'][] = array( 'Model.category LIKE' => '%'.$id.'%')
}
$result = $this->Model->find('all', array('conditions'=>$conditions));
答案 1 :(得分:1)
很抱歉迟到的回复,谢谢你回答我的问题。只要我阅读了你的答案,尼克辛格发布的ansewer就是最有帮助的。但是,我想做的是AND搜索。所以我改进了下面的答案。
$ids = array ('1','2','3');
$conditions = array();
foreach($ids as $id){
$conditions['AND'][] = array( 'Model.category LIKE' => '%'.$id.'%')
}
$result = $this->Model->find('all', array('conditions'=>$conditions));
同样,我非常感谢您的帮助。
答案 2 :(得分:0)
请参阅CakePHP how to get multiple rows by array of ID's
$this->YourModel->find('all', array(
'conditions' => array(
"YourModel.id" => array(1, 2, 3, 4)
)
));
答案 3 :(得分:0)
只是一个猜测,但尝试像
'Model.category LIKE' => "%$ids%"
答案 4 :(得分:0)
没有测试过,但这应该有效
$ids = array(1, 2, 3);
$result = $this->Model->find('all', array(
'conditions' => array('Model.category'=>$ids ')
));