0

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

我用这句话试了一下:“'password'=>$dataProvider->employee->md5(password)” 但是你可以想象它是错误的并且它不起作用。这是我的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',
    ),
),
)); ?>

有人可以帮助我吗?非常感谢。

4

2 回答 2

0

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

$this->widget('zii.widgets.grid.CGridView', array(
    'dataProvider'=>$model->search(),
    'columns'=>array(
            array(
                    'name'=>'password',
                    'value'=>'md5($data->password)',
            ),
    ),
)); 
于 2013-08-28T12:20:26.220 回答
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")',
                       ),
            ),
        ),
    ),
));
于 2013-08-28T02:01:28.607 回答