Yii-自定义搜索组合框

时间:2012-10-14 09:07:05

标签: php yii

我在数据库中有一个存档状态,可以存储0或1. 0 =无效,1 =有效。当我在yii中创建一个组合框时,admin.php文件正确搜索但是组合框中出现的文本是0和1,但是我看到In-Active和Active,但是在选项值中它应该是0和1。 这是我的代码......     

 $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'cities-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'country.countryname'=>array('name'=>'countryid', 'value'=>'$data->country->countryname', 'filter'=>CHtml::listData(Countries::model()->findAll(array('order'=>'countryname')), 'id', 'countryname')),

'cityname',
'citycode',
'citystatus'=>array('name'=>'citystatus', 'value'=>'$data->setCityStatus() . $data->getCityStatus($data->citystatus)', 'filter'=>CHtml::listData(Cities::model()->findAll(array()), 'citystatus', 'citystatus')),
'citycoords',

array(
'class'=>'CButtonColumn',
'template'=> ($iHasFullAccess == 1 ? '{view}{update}{delete}' :  '{view}') ,
),
),
)); 
?>

3 个答案:

答案 0 :(得分:0)

尝试在CgridView列表中更改citystatus选项,如下所示

'citystatus'=>array('name'=>'citystatus', 'value'=>'Cities::getCityStatus($data->citystatus)', 'filter'=>CHtml::listData(Cities::model()->findAll(array()), 'citystatus', 'citystatus')),

在您的城市模型中更改您的getCityStatus功能,如下所示

function getCityStatus($index){
  $status = array('Inactive','Active');
  return $status[$index];
}

答案 1 :(得分:0)

您在CGridView中的

配置您的列:

'citystatus'=>array(
   'name'=>'citystatus',
   'value'=>'$data->citystatus == 1 ? "Active" : "Inactive"', 
   'filter'=> array(0 => 'Inactive', 1 => 'Active')),

答案 2 :(得分:0)

阅读本文后:http://www.yiiframework.com/wiki/653/displaying-sorting-and-filtering-model-relations-on-a-gridview/

如果是模型,请添加以下内容:

use yii\helpers\ArrayHelper;
use app\models\citystatus;

后来在datagrid中

>    'columns' => [
>         ['class' => 'yii\grid\SerialColumn'],
>         .....................,
>         [
>             'attribute' => 'deviceState',
>             'value' => 'deviceStateList.Description',
>             'label' => 'Device State',
>             'filter'=> ArrayHelper::map(Citystatus::find()->all(), 'RecordID', 'CityName'),
>         ],

HTH