3

如何在 yii 中使用场景禁用文本字段?我有 3 类帐户超级管理员、管理员和普通用户。所有 3 类用户都有权更新有关他们的信息,但其中一个字段 accountId 只能由超级管理员和管理员更新,但该字段也应显示给用户。目前我正在按照以下方式进行操作。

<div class="row">
    <?php echo $form->labelEx($user,'accountID'); ?>
    <?php
    if(Yii::app()->user->checkAccess('admin'))
        echo $form->textField($user,'accountID',array('size'=>32,'maxlength'=>32)); 
    else
        echo $form->textField($user,'accountID',array('size'=>32,'maxlength'=>32, 'disabled'=>'true'));?>
    <?php echo $form->error($user,'accountID'); ?>
</div>

这种方法解决了我的问题,但它不是一个好方法,更好的方法是使用场景。如何实现相同的使用场景?

4

2 回答 2

3

我所做的是创建一个检查用户是否具有访问权限的函数。这将减少我的代码,使其更易于维护。

echo $form->textField($user,'accountID',array('size'=>32,'maxlength'=>32,checkAccess($userId)));?>

// my function 
function checkHTMLUserAccess($userId){
    // Some codes
    if ($hasAccess) return array('disabled'=>true);
    else return array();
}

类似的东西:)

于 2013-09-20T06:52:08.950 回答
0
        <div class="row">
            <?php echo $form->labelEx($user,'accountID'); ?>
            <?php echo $form->textField($user,'accountID',array('size'=>32,'maxlength'=>32, 'disabled'=>Yii::app()->user->checkAccess('admin'))); ?>
            <?php echo $form->error($user,'accountID'); ?>
        </div>
于 2013-09-20T06:55:01.690 回答