Как использовать вложенное условие в AndWhere в yii2
Прежде чем пометить как дубликат вопроса, пожалуйста, прочитайте его. У меня здесь другая проблема. Я хочу сгенерировать этот тип запроса с использованием поисковой модели yii2.
select * from t1 innerjoin t2 on (t1.id = t2.id) where ((t1.price >= '1000' and t1.price <= '5000') OR
( t2.price >= '1000' and t2.price <= '5000' ))
Присоединение здесь не проблема. Основная проблема заключается в предложении where. Я пытался это, но не работает.
$query->andFilterWhere([
'and',
['>=', 't1.price', $this>start_price],
['<=', 't1.price', $this->end_price]
])
->orFilterWhere([
'and',
['>=', 't2.price', $this->start_price],
['<=', 't2.price', $this->end_price]
]);
1 ответ
Решение
Пытаться
$query->andFilterWhere([
'or',
[
'and',
['>=', 't1.price', $this>start_price],
['<=', 't1.price', $this->end_price]
],
[
'and',
['>=', 't2.price', $this->start_price],
['<=', 't2.price', $this->end_price]
]
]);