YiiFramework andWhere

Vano

Новичок
Для удобного добавления динамических условий советуют использовать метод andWhere(). А этот метод ставит в скобки все предыдущие условия. Допустим ^
Код:
$query->andWhere('status' => 1) ; // WHERE (status = '1')
$query->andWhere('visible' => 1); // WHERE (status = '1' ) AND (visible = '1')
$query->andWhere('city_id' => 1); // WHERE ((status = '1' ) AND (visible = '1')) AND (city_id = '1')
$query->andWhere('blahblah' => 1); // WHERE (((status = '1' ) AND (visible = '1')) AND (city_id = '1')) AND (blahblah = '1')
Не очень понимаю, запрос тяжелее будет выполнятся? или потом эти скобки грозятся выйти боком?
Или может подскажите, как в условие передавать сночала массив, а потом и в формате операнд
Код:
$query->filterWhere([
                    'status' => Yii::$app->request->get('status'),
                    'type' => Yii::$app->request->get('type'),
                    'blahblah' => Yii::$app->request->get('blahblah'),
                ]);
if( $_GET['blahblah'] == 6 ) $query->andWhere(['>=', 'blahblah', 6]);
Вот чтото типа этого, но может как-нибудь красивее. Может можна как-нибудь в filterWhere передать >=. Ато andWhere настораживает. А строками писать - это прошлый век.
 

Vano

Новичок
Хотя, вроде, какраз и наоборот - скобки уберегают от неправильного запроса.
 
Сверху