使用Yii更改CGridView中参数的值

时间:2013-08-27 22:19:11

标签: php yii

我有一个关于CGridViews的基本问题。我将表员工存储在我的数据库中,并且我正在使用这个CGridView展示他的一些atributs。问题是我使用md5编码存储了所有密码,当我想要显示它们时,我不知道如何在没有md5编码的情况下显示它们。

我用句子试了一下:“'password'=> $ dataProvider-> employee-> md5(密码),”但你可以想象它是错的,它不起作用。这是我的CGridView,参数密码改为这句话。

<?php $this->widget('zii.widgets.grid.CGridView', array(
 'dataProvider'=>$dataProvider,
'id'=>'employee_list',
 'columns'=>array(
    'id',
    'name',
            //'password',
    'password'=>$dataProvider->employee->md5(password),
        array(
        'class'=>'CButtonColumn',
    ),
),
)); ?>
有人可以帮帮我吗?非常感谢你。

2 个答案:

答案 0 :(得分:0)

假设您使用base64_encode($password)对密码进行了编码,那么您需要做的是base64_decode($encoded_password)

来自您的问题,是$dataProvider->md5(password)吗?

也许你可以参考下面的代码。

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'leaveapplication-grid1',
    'dataProvider'=>$model->searchpersonalleave($myid),
    //'filter'=>$model,
    'columns'=>array(

        'leave_dateapplied',
        'leave_id',
        array('name'=>'leave_category','value'=>'$data->getcategoryname($data->leave_category)' ), //0-annual, 1-medical, 2-emergency
        'leave_startdate',
        //'leave_enddate',
        'leave_duration',
        'leave_reason',

        array(
            'class'=>'CButtonColumn',
            'template'=>'{view}{update}',
            'buttons'=>array
                    (
                'update' => array
                        (
                    'visible'=>'($data->getupdatefunction(17) =="Yes")',
                       ),
            ),
        ),
    ),
));

答案 1 :(得分:0)

你只需要将php代码作为字符串传递,Cgridview将使用eval函数运行该字符串, 请参阅以下代码以获得更多说明:

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$model->search(),
    'columns'=>array(
            array(
                    'name'=>'password',
                    'value'=>'md5($data->password)',
            ),
    ),
));