Как найти поля по массиву, который содержит несколько значений, используя как %% search

Я пытаюсь получить несколько полей, которые соответствуют этим идентификаторам (1, 2, 3) с помощью поиска Like %%.
Я пытался заставить его работать в течение двух часов, но это не сработало, хотя выглядит довольно просто.

$ids = array ('1','2','3');

$result = $this -> Model -> find ('all', array(
'conditions' => array( 'Model.category LIKE' => '%'.$ids.'%')
));

Мне нужна чья-то помощь.

2

Решение

Я бы посоветовал вам создать массив условий отдельно. Например:

$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

Другие решения

Извините за поздний ответ, и спасибо за ответ на мой вопрос. До тех пор, пока я читаю ваши ответы, самый полезный из них — Ник Зингер. Тем не менее, то, что я хотел бы сделать, это И поиск. Поэтому я улучшил ответ, как показано ниже.

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

Опять же, я очень благодарен за вашу помощь.

1

Увидеть CakePHP, как получить несколько строк по массиву идентификаторов

$this->YourModel->find('all', array(
'conditions' => array(
"YourModel.id" => array(1, 2, 3, 4)
)
));
0

Просто угадай, но попробуй как

'Model.category LIKE' => "%$ids%"
0

Не проверял это, но это должно работать

$ids = array(1, 2, 3);

$result = $this->Model->find('all', array(
'conditions' => array('Model.category'=>$ids ')
));
0
По вопросам рекламы [email protected]