我如何根据表标志过滤CGridView中的数据

时间:2012-07-07 11:12:49

标签: php yii

我是yii的新手,无法在zii.widgets.grid.CGridView中过滤数据,具体取决于我的数据库表的活动标志字段。 我想只显示活动标志为0的数据。

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'member-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
    'id',
    'f_name',
    'l_name',
    'dob',
    'gender',
    'location',
    'email',
    'active',
    array(
        'class'=>'CButtonColumn',
    ),
),

));

1 个答案:

答案 0 :(得分:3)

在模型的search()方法中,您需要自定义CDbCriteria

您需要添加:

$criteria->compare('active', 1);

如果你想更高级,你可以创建一个Named Scope并在search()方法中定义ActiveDataProvider时使用它,如下所示:

new CActiveDataProvider(Member::model()->active(),.....);

范围是:

public function active()
{
    return array(
            'condition'=>$this->getTableAlias(false, false).'.active =1',
    );
}