Среда
- Версия 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 с именем поля в качестве «пароля», это работает.