我有来自数据库的常量ID,我使用以下代码在我的CGridView中显示它们
'columns'=>array(
'id',
'name',
'email',
array(
'name' => 'deleted',
'value' => '$data->deleted == 1 ? "Yes" : "No"',//like this
),
)
现在当我搜索CGridview时,它只搜索数字,即1或2.我需要搜索是或否。是否可能?
答案 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
),
这将为您提供数组中指定过滤器的下拉列表。