我的控制器中有以下代码:
public function actionAdmin()
{
$model=new MForm('search');
$model->unsetAttributes(); // clear any default values
if(isset($_GET['ChManageForm']))
$model->attributes=$_GET['ChManageForm'];
$this->render('admin',array(
'model'=>$model,
));
}
和
const member=1;
const district=2;
我的观点(称为管理员)
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'ch-manage-form-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'id',
'form_name',
'region',
'phone_number',
'email',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
1和2出现在名为name的列中(在我的视图文件中),此列的值以整数格式保存。我需要显示(在我的视图(admin)中)成员和区域而不是数字(例如成员而不是1)。我该怎么办?
答案 0 :(得分:1)
您也可以像这样指定网格视图列(模型中不需要帮助程序):
array(
'name'=>'form_name',
'value'=>'$data->form_name ? \'Member\':\'District\'',
'type'=>'text',
),
如果你在变量中只有2个值,这个效果很好。
访问此网址以获取更多详细信息。
http://www.yiiframework.com/forum/index.php/topic/14845-if-condition-inside-cgridview/
修改强>
如果您有超过2个值,
用于CGridView的模型:
public function getValueText() {
return $this->getValueTextOptions[$this->form_name];
}
public function getValueTextOptions() {
return array(
1 => 'Member',
2 => 'District',
);
}
使用CGridView查看:
array(
'name'=>'form_name',
'value'=>'$data->getValueText()',
)