$models = ClientsDatabases::model->findAllByAttributes(array(
'active' => 1,
'suspended' => 0
));
我还想通过多列的特定值来过滤它。例如:
$filters = array(
array( 'master_db' => 2, 'db_id' => 3 ),
array( 'master_db' => 2, 'db_id' => 2 ),
)
我可以使用哪些方法来过滤这些特定的列值?
答案 0 :(得分:3)
您是否考虑过使用范围来实现此目标?
控制器:
$model = ClientsDatabases::model()->active()->suspended()->findAll();
型号:
public function scopes() {
return array(
'active' => array(
'condition' => 'active = 1'
),
'suspended' => array(
'condition' => 'suspended = 0'
),
);
}
如果要传递值,而不是像这样定义默认范围,请尝试使用:
型号:
public function active($active = 0) {
$this->getDbCriteria()->mergeWith(array(
'condition' => "active = {$active}"
));
return $this;
}
然后你的控制器看起来像这样:$model = ClientDatabases::model()->active(1)->suspended()->findAll();
希望有所帮助。