如何在yii 1中为保存的数据分配新值?

时间:2016-12-13 10:20:47

标签: php yii yii1.x

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

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)。我该怎么办?

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()',
)