禁用规则模型上的字段yii

use*_*891 0 yii

我试图禁用更新规则模型上的字段,但我有错误.

我试着像:

array('date', 'constraint', 'readOnly'=>true, 'on'=>'update'),
Run Code Online (Sandbox Code Playgroud)

但我有这个错误:

"include(constraint.php):无法打开流:没有这样的文件或目录"

我可以使用htmloptions从视图禁用,但我需要从模型中执行它,因为在更新时我需要禁用超过5个字段.

我怎么能这样做?

thx提前

dar*_*eir 5

您正在使用不存在的验证器声明规则,因此您遇到错误是正常的:

array('date', 'constraint', 'readOnly'=>true, 'on'=>'update'),
Run Code Online (Sandbox Code Playgroud)

此行正在执行以下操作:在param 设置为的方案constraintdate字段上应用验证器.updatereadOnlytrue

验证器constraint不存在在Yii中有内置的functonnality所以如果你没有创建它然后它不存在!

文档:

编辑:在您的表单中,您可以执行以下操作:

<?php 
    echo $form->textField(
        $model,
        'email',
        array('readonly'=>($model->scenario == 'update')? true : false)
    );
?>
Run Code Online (Sandbox Code Playgroud)

如您所见,readonly值将取决于场景.