Gridview Yii1删除初始搜索

Gridview Yii1删除初始搜索,gridview,yii,grid,yii1.x,Gridview,Yii,Grid,Yii1.x,我在CGridView上显示元素列表时遇到问题,我有一个带有布尔字段is_active的表,它的默认值为0,因此当我想在CGridView上显示此表时,它只显示is_active字段上为0的行,默认情况下在搜索输入中添加0 我将此行添加到搜索函数$criteria->compare'is_active',$this->is_active,false;但还是不行 这是我的搜索功能 public function search() { $criteria=new CDbCriteria;

我在CGridView上显示元素列表时遇到问题,我有一个带有布尔字段is_active的表,它的默认值为0,因此当我想在CGridView上显示此表时,它只显示is_active字段上为0的行,默认情况下在搜索输入中添加0

我将此行添加到搜索函数$criteria->compare'is_active',$this->is_active,false;但还是不行

这是我的搜索功能

public function search()
{

    $criteria=new CDbCriteria;

    $criteria->compare('id',$this->id);
    $criteria->compare('title',$this->title);
    $criteria->compare('description',$this->description);
    $criteria->compare('is_active',$this->is_active,false);

    return new CActiveDataProvider($this, array(
        'criteria'=>$criteria,
    ));
}
这是我的观点

...
{
  'header' : 'Activated',
  'filter' : CHtml.activeTextField( model, 'is_active' ),
  'value' : '$data->is_active ? "Oui" : "Non" '
}
...
这就是我得到的

但我想要的是显示所有表的元素。

您需要使用重置从数据库架构检测到的默认值:

$model = new MyModel('search');
$model->unsetAttributes();
if (isset($_GET['MyModel'])) {
    $model->attributes = $_GET['MyModel'];
}
$dataProvider = $model->search();