Yii Query Builder несколько предложений where

Я заметил в своем стеке, что мой запрос не выполнялся правильно, поскольку у меня было несколько предложений where в моем построителе запросов. Итак, я посмотрел на этот пост Несколько вызовов where в Yii Query Builder

Применил то, что я прочитал, но все же запрос не объединяет операторы where. Что я делаю не так?

            $command = Yii::app()->db->createCommand()
        ....
        ->where(array('in', 'u.id', $licenses), array('and', 'i.date_added > DATE_SUB(u.date_expired, INTERVAL  30 DAY)'));
        //->where(array('and', 'i.date_added > DATE_SUB(u.date_expired, INTERVAL  30 DAY)'));
        //->where(array('and', 'u.date_expired > CURDATE()'))
        ->group('u.id');

Это были 3 отдельных утверждения, но я объединил их по мере прочтения, но все равно получил тот же результат. Только 1 где пункт.


person Jonnny    schedule 07.09.2013    source источник


Ответы (1)


Вы должны использовать метод andWhere. Этот метод помещает ключевое слово AND, поэтому вам просто нужно условие:

$command = Yii::app()->db->createCommand()
    ....
    ->where(array('in', 'u.id', $licenses));
    ->andWhere('i.date_added > DATE_SUB(u.date_expired, INTERVAL  30 DAY)');
    ->andWhere('u.date_expired > CURDATE()')
    ->group('u.id');
person darkheir    schedule 07.09.2013
comment
Спасибо, просто отметим, что в документах он указан как addwhere(), но на самом деле метод andWhere() - person Jonnny; 08.09.2013