2015-11-03 38 views
2

我有准备取决于一些列名(created_user_id,STATUS_ID,COM​​PANY_ID)的状态的控制器功能。记录从表中取出jobs如果某些条件得到满足,我们有具体的job_id再去捡些行。示例在下面给出。`和`和`或`条件一起在``Yii``ActiveRecord` findAllByAtributes`

(created_user_id = 123 AND status_id = 15 AND company_id = 400) OR (job_id IN (18,22,34)) 

如何,我可以写与findAllByAttributes或使用findAll这种状况呢?我试着用CbCriteria;但我不知道如何将这种AND和OR条件结合起来。任何帮助都感激不尽。

回答

1

尝试使用addInCondition

例如,

$criteria->condition(('created_user_id = 123 AND status_id = 15 AND company_id = 400', 'OR'); 
$criteria->addInCondition('job_id ', array('18','22','34')); 
$relation_models = Relation::model()->findAll($criteria); 
1

有多种方式:

$criteria = new CDbCriteria; 
$criteria->condition = '(created_user_id = 123 AND status_id = 15 AND company_id = 400) OR (job_id IN (18,22,34)))'; 
$models = TableName::model()->findAll($criteria); 

或者,

$models = TableName::model()->findAll('column=:t4 OR something IN (2,4,6,7)', array(':t4'=>1));