Сообщение об ошибке подтверждения Laravel 5 отображается в неправильном поле

Я хотел бы проверить, есть ли ошибка в моем коде, которую я не осознавал, но почему сообщение об ошибке моего поля подтверждения продолжает отображаться в неправильном поле? Предположим, у меня есть поле для пароля и поле для подтверждения пароля, но каждый раз, когда пользователь делает ошибку в поле для подтверждения пароля, вместо этого ошибка отображается в поле для пароля. Вот скриншот ошибки.

недопустимое отображение сообщения об ошибке

И вот как я проверяю ввод с помощью FormRequest:

public function rules()
{
    $rules = [
    'login_email'           =>  'required',
    'g-recaptcha-response'  =>  'required|captcha',
    ];

    if ($this->request->has('password'))
    {
        $rules = [
        'password' => 'required|confirmed|between:6,200',
        'password_confirmation' => 'required',
        'g-recaptcha-response'  =>  'required|captcha',
        ];
    }

    if ($this->request->has('old_password'))
    {
        $rules = [
        'old_password' => 'required|between:6,200',
        'password' => 'required|confirmed|between:6,200',
        'password_confirmation' => 'required',
        'g-recaptcha-response'  =>  'required|captcha',
        ];
    }

    return $rules;
}

Наконец, это мой html-код

{!! Form::open(array('class' => 'form-horizontal login-form', 'url' => URL::route('postReset'), 'method' => 'POST')) !!}
            <div class="form-group">
                <div class="col-md-12 col-sm-12">
                    {!! Form::password('password', array('class' => 'form-control', 'placeholder' => 'New Password*')); !!}
                    {!! MessagerService::setInlineError($errors->first('password')) !!}
                </div>
            </div>

            <div class="form-group">
                <div class="col-md-12 col-sm-12">
                    {!! Form::password('password_confirmation', array('class' => 'form-control', 'placeholder' => 'Retype New Password*')); !!}
                    {!! MessagerService::setInlineError($errors->first('password_confirmation')) !!}
                </div>
            </div>

            <div class="form-group">
                <div class="col-md-12 col-sm-12">
                    {!! app('captcha')->display(); !!}
                    {!! MessagerService::setInlineError($errors->first('g-recaptcha-response')) !!}
                </div>
            </div>                  

            <div class="form-group">
                <div class="col-md-12 col-sm-12">
                    <button type="submit" class="btn btn-primary cbtn-login">Reset Password</button>
                </div>
            </div>

            <input type="hidden" name="_token" value="{{ csrf_token() }}">
            <input type="hidden" name="hash" value="{{ Session::get('hash') }}">
{!! Form::close() !!}

person Kenny Yap    schedule 20.06.2015    source источник
comment
откуда у тебя этот класс? MessagerService   -  person Wajahat Hashmi    schedule 06.01.2017


Ответы (1)


поскольку вы определили правило confirmed для поля password, все ошибки, связанные с password_confirmation, также будут отображаться в поле пароля.

person Salar    schedule 20.06.2015
comment
что мне делать в этом случае? я не мог изменить подтвержденное правило на поле password_confirmation, иначе оно не будет проверено. - person Kenny Yap; 21.06.2015
comment
вы должны убрать подтверждение пароля из списка ошибок пароля и показать его в поле password_confirmation. - person Salar; 21.06.2015