Как я могу отобразить предупреждающее сообщение в текстовом поле в Yii

Я новичок в среде Yii, и мне нужно отобразить сообщение об ошибке проверки, как в форме входа "Username cannot be blank". Теперь у меня есть текстовое поле, в котором я обновил поля, и во время проверки я хочу, чтобы отображалось сообщение. Как я могу это сделать?

Контроллер

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,
        ));
    }
    }

Просмотреть

<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>

Теперь в настоящее время я показываю его вверху. введите здесь описание изображения

Я хочу отобразить его прямо в текстовом поле, как на странице входа. введите здесь описание изображенияКак мне это сделать?


person user2770039    schedule 07.10.2013    source источник
comment
можешь уточнить что ты хочешь? вы хотите, чтобы ошибка отображалась справа от текстового поля, или внутри текстового поля, или что-то еще?   -  person deacs    schedule 07.10.2013
comment
Я хочу, чтобы ошибка отображалась в текстовом поле   -  person user2770039    schedule 07.10.2013


Ответы (1)


Перед переадресацией добавьте сообщение в нужное поле.

В валидаторе модели:

$this->addError('field_name', "Ошибка сообщения.");

Или в действии контроллера:

$model->addError('field_name', "Ошибка сообщения.");

person Daniel Vaquero    schedule 07.10.2013
comment
<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'); ?> <?php echo $this->addError('password_current', "Message error.");?> </div> Я сделал это, но получаю исключение - нет метода или замыкания с именем addError. - person user2770039; 07.10.2013
comment
Отредактировано. Вы делаете это на контроллере, а не в модели. Замените $this на $model - person Daniel Vaquero; 07.10.2013
comment
Обновите код вопроса, пожалуйста. о посмотреть, как вы делаете прямо сейчас. - person Daniel Vaquero; 07.10.2013