Регистрация регистрации Laravel с измененными именами полей ввода - PullRequest
0 голосов
/ 21 октября 2019

Среда

  • Версия Laravel: 6.1.0
  • Версия PHP: 7.3.10

Описание:

У меня естьнастраиваемая аутентификация Laravel, которая включает разные имена полей. Моё поле пароля - Пароль с заглавной буквой P. У меня есть следующее утверждение:

$this->assertFalse(session()->hasOldInput('Password'));

Следующий дамп показывает введенный пароль.

dd(session()->getOldInput('Password');

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

... ->withInput($request->only(['FirstName', 'LastName', 'Email']))

Но это не работает для валидатора.

Я копался в этих файлах:

vendor / laravel / framework / src / Illuminate / Validation.php vendor / laravel / framework / src / Illuminate / Validation / ValidationException.php

Но они не упоминают пароль. Любая подсказка, где валидатор фильтрует запросы или как добавить пользовательский фильтр к этому?

Кроме того, в моем контроллере действуют следующие правила:

return Validator::make($data, [
            'FirstName' => ['required', 'string', 'max:255'],
            'LastName' => ['required', 'string', 'max:255'],
            'Email' => ['required', 'string', 'email', 'max:255'],
            'Password' => ['required', 'string', 'min:6', 'confirmed'],
        ]);

Если я запускаю свой тест на чистой установке или в laravel с именем поля в качестве «пароля», это работает.

1 Ответ

1 голос
/ 21 октября 2019

Добавьте ваше имя настраиваемого поля в массив $dontFlash в app\Exceptions\Handler.php

protected $dontFlash = [
    'Password',
    'Password_confirmation',
];

https://github.com/laravel/laravel/blob/master/app/Exceptions/Handler.php

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