如何在yii中使用方案禁用文本字段?我有3类帐户superadmin,admin和普通用户。所有3类用户都可以访问有关它们的更新信息,但是其中一个字段accountId只能由superadmin和admin更新,但该字段也应该显示给用户。目前我正在以下列方式进行。
<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>
这个方法解决了我的问题,但它不是一个好方法,更好的方法是使用场景。如何使用场景实现相同的效果?
答案 0 :(得分: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();
}
类似的东西:)
答案 1 :(得分: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>