chelkaz
@chelkaz

Laravel 5.4 Validator & Почему фильтрует как попало?

В HTML форме поля:
category (Селект), title (Инпут), text (ТектАреа)
В контроллере Validator
'category' => 'required|exists:categories,code',
'title' => 'required|between:15,150',
'text' => 'required|between:30,5000',

И вот в чем парадокс...
Если все поля пустые, то возвращает все ошибки верно.
Если заполнить только title и передать в нем один символ, то возвращает все 4 ошибки верно.
Если заполнить title и text йцукен, ТО ПРОПУСКАЕТ! Как так то?
Если заполнить title и text - qwerty, то возвращает все ошибки. Что верно.

И самое интересное, если я ловлю ошибки в контроллере:
if ($validator->fails()) {
dd($validator->messages());
}

То ловит все правильно! Но только делаю:
return back()->withErrors($validator)->withInput();

Как начинается парадокс во вьюхе...
  • Вопрос задан
  • 340 просмотров
Решения вопроса 1
chelkaz
@chelkaz Автор вопроса
Итог: Многие тут начали "орать" смотри в документацию и т. д. Видимо пишут так везде где вопрос сложнее чем 2+2.
Поэтому может кто столкнется рассказываю. Протестировал с разными драйверами сессий. На станице была гугловская Рекапча! (не подключенная для проверки в валидаторе)
Так вот, если стоит драйвер сессий - SESSION_DRIVER=cookie И заполнить часть полей неправильно, а потом нажать рекапчу «Я не робот» и послать, то при ошибки редиректит обратно, но с пустым $validator->messages()
Самое интересное, что сама рекапча как функционал не подключена в системе!!! Важен сам процесс нажатия кнопки, видимо в этот момент она меняет DOM в браузере и как то влияет.
Если ее не нажимать, то валидатор работает и редиректит правильно!
Но когда я поменял драйвер на SESSION_DRIVER=database
То все заработало без ошибок!
Методом проб, выяснилось, что recaptcha влияет на сессию в браузере Chrome когда в настройках ларавел стоит SESSION_DRIVER=cookie
Если найдется тот, кто свяжет все это более детально будет здорово!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы