Я пытаюсь получить несколько полей, которые соответствуют этим идентификаторам (1, 2, 3) с помощью поиска Like %%.
Я пытался заставить его работать в течение двух часов, но это не сработало, хотя выглядит довольно просто.
$ids = array ('1','2','3');
$result = $this -> Model -> find ('all', array(
'conditions' => array( 'Model.category LIKE' => '%'.$ids.'%')
));
Мне нужна чья-то помощь.
Я бы посоветовал вам создать массив условий отдельно. Например:
$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));
Извините за поздний ответ, и спасибо за ответ на мой вопрос. До тех пор, пока я читаю ваши ответы, самый полезный из них — Ник Зингер. Тем не менее, то, что я хотел бы сделать, это И поиск. Поэтому я улучшил ответ, как показано ниже.
$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));
Опять же, я очень благодарен за вашу помощь.
Увидеть CakePHP, как получить несколько строк по массиву идентификаторов
$this->YourModel->find('all', array(
'conditions' => array(
"YourModel.id" => array(1, 2, 3, 4)
)
));
Просто угадай, но попробуй как
'Model.category LIKE' => "%$ids%"
Не проверял это, но это должно работать
$ids = array(1, 2, 3);
$result = $this->Model->find('all', array(
'conditions' => array('Model.category'=>$ids ')
));