Yii 使用用户表中的用户\状态字段更改imageUrl

Yii 使用用户表中的用户\状态字段更改imageUrl,yii,cgridview,cbuttoncolumn,Yii,Cgridview,Cbuttoncolumn,我必须建模:User,UserFlag 在用户/索引中,在CGridView中添加了一列: array( 'class' => 'CButtonColumn', 'htmlOptions' => array("style" => 'width: 45px;'), 'template' => '{enable}', 'header' => 'management', 'buttons' => array(

我必须建模:User,UserFlag 在用户/索引中,在CGridView中添加了一列:

array(
    'class' => 'CButtonColumn',
    'htmlOptions' => array("style" => 'width: 45px;'),
    'template' => '{enable}',
    'header' => 'management',
    'buttons' => array(
            'enable' => array(
                'name' => 'enable',
                'imageUrl' => Yii::app()->baseUrl."/images/ico/group.png",
                'url' => '"#".$data->username',
                'click' => 'js:function() {
                    if(confirm("Are you sure?")){
                                    changeUserStatus($(this).attr("href").replace("#", ""));
                                }
                            }',
                ),
    ),

我将从UserFlag模型读取用户状态,如果状态为active,则显示1.png,如果状态为deactive,则显示2.png。

是的,$data变量无法从imageUrl访问。我建议像斯图的链接建议的那样从CButtonColumn扩展

如果不想这样做,可以创建两个按钮列,并根据状态显示它们。它可能是这样的,但如果活动用户的状态值不是1或希望图像反转,则可能需要调整它:

'enable' => array(
                'name' => 'enable',
                'visible'=>'$data->user_status == 1'
                'imageUrl' => Yii::app()->baseUrl."/images/ico/1.png",
                'url' => '"#".$data->username',
                'click' => 'js:function() {
                    if(confirm("Are you sure?")){
                                    changeUserStatus($(this).attr("href").replace("#", ""));
                                }
                            }',
                ),

'disable' => array(
                'name' => 'disable',
                'visible'=>'$data->user_status == 0'
                'imageUrl' => Yii::app()->baseUrl."/images/ico/0.png",
                'url' => '"#".$data->username',
                'click' => 'js:function() {
                    if(confirm("Are you sure?")){
                                    changeUserStatus($(this).attr("href").replace("#", ""));
                                }
                            }',
                ),
您还需要将{disable}添加到CButtonColumn模板中

这并不理想,因为您正在重复代码,但至少您可以在不扩展任何类的情况下完成它。

这个答案可能会帮助您: