如何在Yii中的文本字段上显示警告消息
我是Yii框架的新手,需要以登录形式显示验证错误消息如何在Yii中的文本字段上显示警告消息,yii,yii-components,Yii,Yii Components,我是Yii框架的新手,需要以登录形式显示验证错误消息“用户名不能为空”。现在,我有了一个文本字段,我在其中更新了字段,在验证期间,我希望显示一条消息。我该怎么做 控制器 public function actionUpdate($id) { $model = $this->loadModel($id); // set the parameters for the bizRule $params = array('GroupzSupport'=>
“用户名不能为空”
。现在,我有了一个文本字段,我在其中更新了字段,在验证期间,我希望显示一条消息。我该怎么做
控制器
public function actionUpdate($id)
{
$model = $this->loadModel($id);
// set the parameters for the bizRule
$params = array('GroupzSupport'=>$model);
// now check the bizrule for this user
if (!Yii::app()->user->checkAccess('updateSelf', $params) &&
!Yii::app()->user->checkAccess('admin'))
{
throw new CHttpException(403, 'You are not authorized to perform this action');
}
else
{
if(isset($_POST['GroupzSupport']))
{
$password_current=$_POST['GroupzSupport']['password_current'];
$pass=$model->validatePassword($password_current);
$model->attributes=$_POST['GroupzSupport'];
if($pass==1)
{
$model->password = $model->hashPassword($_POST['GroupzSupport']['password_new']);
if($model->save())
$this->redirect(array('/messageTemplate/admin'));
}
else {$errors="Incorrect Current password"; print '<span style="color:red"><b>';
print '</b><b>'.$errors;
print '</b></span>';}
}
$this->render('update',array(
'model'=>$model,
));
}
}
公共功能操作更新($id)
{
$model=$this->loadModel($id);
//设置bizRule的参数
$params=array('GroupzSupport'=>$model);
//现在检查此用户的bizrule
如果(!Yii::app()->user->checkAccess('updateSelf',$params)&&
!Yii::app()->user->checkAccess('admin'))
{
抛出新的HttpException(403,‘您无权执行此操作’);
}
其他的
{
如果(isset($_POST['GroupzSupport']))
{
$password\u current=$\u POST['GroupzSupport']['password\u current'];
$pass=$model->validatePassword($password\u current);
$model->attributes=$\u POST['GroupzSupport'];
如果($pass==1)
{
$model->password=$model->hashPassword($\u POST['GroupzSupport']['password\u new']);
如果($model->save())
$this->redirect(数组('/messageTemplate/admin');
}
else{$errors=“当前密码不正确”打印“”;
打印“”。$错误;
打印“”;}
}
$this->render('update',数组(
'model'=>$model,
));
}
}
查看
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'password-recovery-reset-password-form',
'enableAjaxValidation'=>false,
)); ?>
<div class="row"><?php
echo $form->labelEx($model,'username');
echo $form->textField($model,'username',array('size'=>45,'maxlength'=>150));
echo $form->error($model,'username');
?></div>
<div class="row">
<?php echo $form->labelEx($model,'current password'); ?>
<?php echo $form->passwordField($model,'password_current',array('size'=>30,'maxlength'=>30)); ?>
<?php echo $form->error($model,'password_current'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'new password'); ?>
<?php echo $form->textField($model,'password_new',array('size'=>30,'maxlength'=>30)); ?>
<?php echo $form->error($model,'password_new'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'confirm new password'); ?>
<?php echo $form->passwordField($model,'password_repeat',array('size'=>30,'maxlength'=>30)); ?>
<?php echo $form->error($model,'password_repeat'); ?>
</div>
<div class="row buttons"><?php
echo CHtml::submitButton('Reset Your Password');
?></div><?php
$this->endWidget(); ?>
</div>
现在,我正在顶部显示它。
我想在登录页面的文本字段上显示它。如何执行此操作?在重定向之前,将消息添加到所需字段 在模型验证器中: $this->addError('field_name',“Message error”)强> 或在控制器操作中:
$model->addError('field_name',“Message error”)你能澄清你想要什么吗?您希望错误显示在文本字段的右侧、文本字段内部还是其他位置?我希望错误显示在文本字段
我这样做了,但我得到了一个异常-没有名为“addError”的方法或闭包。已编辑。您在控制器上执行此操作,而不是在模型中。将$this替换为$model请更新您的问题代码。o看看你现在怎么样。