Yii Query Builder多个where子句

Jon*_*nny 1 yii query-builder

我在我的堆栈中注意到我的查询没有正确执行,因为我在querybuilder中有多个where子句.所以我在Yii Query构建器中查看了这个帖子Multiple call where

应用我读过的内容,但查询仍然没有结合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');
Run Code Online (Sandbox Code Playgroud)

这些是3个单独的陈述,但我在阅读时将它们合并,但结果仍然相同.只有1个where子句.

dar*_*eir 5

你应该使用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');
Run Code Online (Sandbox Code Playgroud)