我有一个关于以 yii 形式显示错误的问题。
这是我的控制器:
$custom_user->attributes = $_POST['CustomUser'];
if($custom_user->validate())
{
...
save
...
}
else
{
$custom_user->addError('username', 'Error X');
$this->redirect(array('access/index'),
array('user'=>$custom_user,
'tab'=>$tab_person,
));
}
这是我的索引视图:
<?php $form=$this->beginWidget('BaseForm', array(
'id'=>'user-form',
'action'=>Yii::app()->createUrl('person/createUser'))); ?>
<?php echo $form->errorSummary($user);?>
<div class="right">
<?php echo $form->textField($user,'username',array('size'=>30,'maxlength'=>255)); ?>
<br/><?php echo $form->error($user,'username'); ?>
</div>
...
...
<div style="float: left;">
<?php echo $form->dateField($user,'valid_from',null,'valid_from_formated'); ?>
<br/><?php echo $form->error($user,'valid_from'); ?>
</div>
这是我的 BaseForm
public $enableClientValidation = true;
public $enableAjaxValidation = true;
public $clientOptions = array( 'hideErrorMessage'=>false,
'validateOnSubmit'=>true,
'validateOnChange'=>false,
'validateOnType'=>false,
'afterValidateAttribute' => 'js:enableSubmitAV',
'afterValidate' => 'js:submitFormAV'); // always fires this after
这是问题所在:
"$form->errorSummary($user);" 为空,注意显示在“$form->error($user,'username');”下
但是,如果我查看 Firebug,我可以在“响应”选项卡下看到:
{"CustomUser_valid_until":["Valid Until 必须大于 \"20121127\"."]}
这是一件好事,因为这意味着我的规则很有效。但没有显示任何错误。不是这个,甚至我在控制器中添加的错误“错误 X”也没有显示...(我确定我通过了 else 语句,我试过了)。
那么,有没有人可以有一个想法?
感谢您阅读我,并为我的近似英语感到抱歉。
祝你有美好的一天 :)
迈克尔