@alex_belouss

Как в active record сделать OR а не AND?

Кусочек запроса: ->andWhere([['like','season', $_GET['season'] ? $_GET['season'] : []])

Когда в массиве $_GET['season'] несколько значений, то запрос получается так ((`season` LIKE '%Зима%' AND `season` LIKE '%Лето%' AND `season` LIKE '%Демисезон%' AND `season` LIKE '%Круглогодичный%'))

Мне нужно сделать вместо AND OR. Как можно добиться?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 2
slo_nik
@slo_nik Куратор тега Yii
Добрый вечер.
Мне нужно сделать вместо AND OR. Как можно добиться

Ну как ещё можно сделать, если не читать документацию?
На русском.
Ответ написан
Комментировать
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
есть ->andWhere а есть ->orWhere.
Так же обращу внимание, что есть такая конструкция:
->andWhere(['or',['some_hren'=>12],['some_hren'=>145]])

В Вашем же случае, если я правильно понял, должно быть так:
$model = SomeModel::find();
foreach($search_words_array as $word){
  $model->orWhere(['like','season',$word]);
}
print_r($model->asArray()->all());
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы