Yii-通过多列值过滤模型findAll?

Yii-通过多列值过滤模型findAll?,yii,Yii,我还想通过多个列的特定值对此进行过滤。例如: $models = ClientsDatabases::model->findAllByAttributes(array( 'active' => 1, 'suspended' => 0 )); 我可以使用哪些方法按这些特定的列值进行筛选?您是否考虑过使用作用域来完成此操作 控制器: $model=ClientsDatabases::model()->active()->suspended()->findAll()

我还想通过多个列的特定值对此进行过滤。例如:

$models = ClientsDatabases::model->findAllByAttributes(array(
  'active' => 1, 
  'suspended' => 0 
 ));

我可以使用哪些方法按这些特定的列值进行筛选?

您是否考虑过使用作用域来完成此操作

控制器:
$model=ClientsDatabases::model()->active()->suspended()->findAll()

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
如果要传递值,请尝试使用以下方法,而不是像那样定义默认范围:

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
然后,您的控制器将如下所示:
$model=ClientDatabases::model()->active(1)->suspended()->findAll()


希望能有所帮助。

您是否考虑过使用作用域来完成此任务

控制器:
$model=ClientsDatabases::model()->active()->suspended()->findAll()

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
如果要传递值,请尝试使用以下方法,而不是像那样定义默认范围:

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
然后,您的控制器将如下所示:
$model=ClientDatabases::model()->active(1)->suspended()->findAll()


希望能有所帮助。

您是否考虑过使用作用域来完成此任务

控制器:
$model=ClientsDatabases::model()->active()->suspended()->findAll()

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
如果要传递值,请尝试使用以下方法,而不是像那样定义默认范围:

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
然后,您的控制器将如下所示:
$model=ClientDatabases::model()->active(1)->suspended()->findAll()


希望能有所帮助。

您是否考虑过使用作用域来完成此任务

控制器:
$model=ClientsDatabases::model()->active()->suspended()->findAll()

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
如果要传递值,请尝试使用以下方法,而不是像那样定义默认范围:

型号:

   $filters = array( 
        array( 'master_db' => 2, 'db_id' => 3 ), 
        array( 'master_db' => 2, 'db_id' => 2 ), 
   )
public function scopes() {
    return array(
        'active' => array(
            'condition' => 'active = 1'
        ),
        'suspended' => array(
            'condition' => 'suspended = 0'
        ),
    );
}
然后,您的控制器将如下所示:
$model=ClientDatabases::model()->active(1)->suspended()->findAll()


希望对您有所帮助。

您能提供一个使用
master\u db
db\u id
的示例吗?因为它们需要非常具体的值,并且是多个而不是简单的
活动
条件。您能否提供一些关于
主数据库和
数据库id
的上下文?它们是有关系的两个独立的表,还是您使用它们来引用特定的表?我使用它们来引用外部数据库-我有一个单独的类连接到主数据库,主数据库包含站点和这些站点的数据库连接,这就是使用子数据库的地方。我只需要从活动1和((master\u db=1和db\u id=3)或(master\u db=2和db\u id=1)的客户机数据库中选择与
SELECT*等效的内容。
。也许最好的方法只是一个原始查询?您可以通过()查看Yii的
with
方法。在模型类中,您需要定义一个
relations()
函数,但我不确定这是否适用于多个数据库连接。您的
$model
将看起来像这样
$model=ClientDatabases::model()->带有('table1','table2')->active(1)->suspended()->findAll()
您能否提供一个使用
master_db
db_id
的示例?因为它们需要非常具体的值,并且是多个而不是简单的
活动
条件。您能否提供一些关于
主数据库和
数据库id
的上下文?它们是有关系的两个独立的表,还是您使用它们来引用特定的表?我使用它们来引用外部数据库-我有一个单独的类连接到主数据库,主数据库包含站点和这些站点的数据库连接,这就是使用子数据库的地方。我只需要从活动1和((master\u db=1和db\u id=3)或(master\u db=2和db\u id=1)的客户机数据库中选择与
SELECT*等效的内容。
。也许最好的方法只是一个原始查询?您可以通过()查看Yii的
with
方法。在模型类中,您需要定义一个
relations()
函数,但我不确定这是否适用于多个数据库连接。您的
$model
将看起来像这样
$model=ClientDatabases::model()->带有('table1','table2')->active(1)->suspended()->findAll()
您能否提供一个使用
master_db
db_id
的示例?因为它们需要非常具体的值,并且是多个而不是简单的
活动
条件。您能否提供一些关于
主数据库和
数据库id
的上下文?它们是有关系的两个独立的表,还是您使用它们来引用特定的表?我使用它们来引用外部数据库-我有一个单独的类连接到主数据库,主数据库包含站点和这些站点的数据库连接,这就是使用子数据库的地方。我只需要从活动1和((master\u db=1和db\u id=3)或(master\u db=2和db\u id=1)的客户机数据库中选择与
SELECT*等效的内容。
。也许最好的方法只是一个原始查询?您可以通过()查看Yii的
with
方法。在模型类中,您需要定义一个
relations()
函数,但我不确定这是否适用于多个数据库连接。您的
$model
将看起来像这样
$model=ClientDatabases::model()->带有('table1','table2')->active(1)->suspended()->findAll()
您能否提供一个使用
master_db
db_id
的示例?因为它们需要非常具体的值,并且是多个而不是简单的
活动
条件。您能否提供一些关于
主数据库和
数据库id
的上下文?它们是有关系的两个单独的表,还是您使用它们来引用一个特定的表?我使用它们来引用外部数据库-我有一个单独的类连接到主数据库,它包含站点