0

我的控制器中有以下代码:

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 的列中(在我的视图文件中),并且该列的值以整数格式保存。我需要显示(在我看来(管理员))成员和地区而不是数字(例如成员而不是 1)。我该怎么做?

4

1 回答 1

0

您还可以像这样指定网格视图列(不需要模型中的助手):

array(
    'name'=>'form_name',
    'value'=>'$data->form_name ? \'Member\':\'District\'',
    'type'=>'text',
),

如果变量中只有 2 个值,这将非常有用。

访问此 URL 以获取更多详细信息。

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()',
)
于 2016-12-13T11:18:56.563 回答