Правила подтверждения пароля в laravel не выполнены - PullRequest
1 голос
/ 02 мая 2020

Я застрял с моей проблемой проверки правил в laravel Я не знаю, что не так

вот мой блейд-код

 <div class="form-item form-group">
                <input name="password" id='password' type="password" value="" placeholder="Mot de passe" required>
            </div>
            <div class="form-item form-group">
                <input name="confirm_password" id='confirm_password' type="password" value="" placeholder="Confirmation du mot de passe" required>
            </div>

И моя функция регистрации

    protected function validator(array $data)
{
    var_dump($data);

    $validator = Validator::make($data, [
        'username' => 'required|max:255|unique:users,pseudo',
        'mail' => 'required|email|max:255|unique:users',
        'password' => 'required|between:8,255|confirmed'
    ]);

    $errors = $validator->errors();
    dd($errors);
    return $validator;

}

и функция dd возвращает эту ошибку

Illuminate\Support\MessageBag {#392 ▼
  #messages: array:1 [▼
    "password" => array:1 [▼
      0 => "The password confirmation does not match."
    ]
  ]
  #format: ":message"
}

Я дважды проверяю свой пароль / подтверждаю пароль, и они совпадают

1 Ответ

2 голосов
/ 02 мая 2020

Вам необходимо использовать следующее имя для своего поля подтверждения, посмотрите на do c (https://laravel.com/docs/7.x/validation#rule -подтвержденный )

Поле при проверке должно иметь соответствующее поле foo_confirmation. Например, если проверяемое поле является паролем, во входном поле должно присутствовать соответствующее поле password_confirmation.

Поэтому вам необходимо изменить код на:

    <div class="form-item form-group">
        <input name="password" id='password' type="password" value="" placeholder="Mot de passe" required>
    </div>
    <div class="form-item form-group">
        <input name="password_confirmation" id='password_confirmation' type="password" value="" placeholder="Confirmation du mot de passe" required>
    </div>

Если изменить имя входа невозможно, вы можете использовать замыкание для создания собственного правила (https://laravel.com/docs/7.x/validation#using -closures )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...