Как устранить ошибку «Пароли должны содержать не менее восьми символов и соответствовать подтверждению».на уровне 5,8 - PullRequest
0 голосов
/ 09 марта 2019

когда я набираю электронную почту и пароль и нажимаю на кнопку сброса пароля, если пароль меньше 3 символов, появляется сообщение об ошибке: пароль должен содержать не менее 3 символов, но если я набираю пароль более 3 символов , в сообщении электронной почты указана ошибка: пароли должны содержать не менее восьми символов и соответствовать подтверждению; пароль подтвержден и соответствует подтверждению.

метод правил в файле resetPasswordController.php:

protected function rules()
{
    return [
        'token' => 'required',
        'email' => 'required|email',
        'password' => 'required|confirmed|min:3',
    ];
}

и как мне решить эту проблему, чтобы успешно сбросить пароль, не показывая пароль должен содержать не менее восьми символов и соответствовать подтверждению?

Ответы [ 4 ]

0 голосов
/ 09 марта 2019

Просто добавьте rules() метод, в Auth \ ResetPasswordsController.php после construct():

public function rules()
{
    return [
      'password' => ['required', 'min:5', 'confirmed']

    ];
}

Вот скриншот, нажмите меня.

И, пожалуйста, имейте в виду, никогда не редактируйте vendor / files.

0 голосов
/ 09 марта 2019

Перейдите к project_folder\smt\vendor\laravel\framework\src\Illuminate\Foundation\Auth\ResetsPasswords.php

Измените метод rules() так, как вы хотите.

    /**
     * Get the password reset validation rules.
     *
     * @return array
     */
    protected function rules()
    {
        return [
            'token' => 'required',
            'email' => 'required|email',
            'password' => 'required|confirmed|min:6',
        ];
    }
0 голосов
/ 09 марта 2019

спасибо всем, решение было:

Что вы ищете в этом классе:

\ Осветите \ Auth \ Пароли \ PasswordBroker и эта функция

validatePasswordWithDefaults Это выглядит немного странно, что 8 жестко закодирован в этой функции. Я думаю, что, вероятно, есть лучшая практика для изменения этого. Может быть, вы могли бы переопределить функцию в вашем контроллере. Попробуйте это тоже.

0 голосов
/ 09 марта 2019

вы можете переписать метод валидатора, как показано ниже.

/**
 * Get a validator for an incoming registration request.
 *
 * @param  array  $data
 * @return \Illuminate\Contracts\Validation\Validator
 */
protected function validator(array $data)
{
    return Validator::make($data, [
        'password' => ['required', 'string', 'min:3', 'confirmed'],
    ]);
}
...