CGridView搜索常量的功能

时间:2014-03-15 19:12:15

标签: php yii cgridview

我有来自数据库的常量ID,我使用以下代码在我的CGridView中显示它们

'columns'=>array(
    'id', 
    'name',
    'email',
    array(
        'name' => 'deleted', 
        'value' => '$data->deleted == 1 ? "Yes" : "No"',//like this 
     ),
)

现在当我搜索CGridview时,它只搜索数字,即1或2.我需要搜索是或否。是否可能?

1 个答案:

答案 0 :(得分:1)

假设您的模型是User并且您正在显示该表的CGridView,在UserController中获取您的参数如下: -

if(isset($_GET['User'])){
    $model->setAttributes($_GET['User']);
}
if(isset($_GET['User']['deleted'])){
    $value = $_GET['User']['deleted'];
    if($value == 'Yes' || $value == 'yes'){
        $model->setAttribute('deleted', 1);
    }
    if($value == 'No' || $value == 'no'){
        $model->setAttribute('deleted', 0);
    }
}

使用此功能,您可以通过“是”或“否”

搜索“已删除”字段

更新: -

您可以使用以下代码将下拉菜单作为CGridView中的过滤器

$filter = array(
    '0' => 'No',
    '1' => 'Yes'
);
...
array(
    'name' => 'deleted', 
    'value' => '$data->deleted == 1 ? "Yes" : "No"',
    'filter' => $filter
),

这将为您提供数组中指定过滤器的下拉列表。