John
так как он пытается искать /en а его нету
John
кто может что подсказать в этом вопросе, как лучше поступить может кто сталкивался
Алексей
Ребят, помогите с валидационными правилами, пожалуйста.
Алексей
К примеру, у меня есть поле, которое может быть равно _строке_ "true" или "false" . Как правильно проверять его значение в required_if ?
"required_if: a,false" не прокатывает.
Алексей
Читал уже много раз. Проблема в том, что если значение "false", а правило выглядит так: "required_if:a,true", то оно даст ложное срабатывание.
Nik
Алексей
Потому что, видимо, непустая строка преобразовывается в true
John
Nik
влияет. ты сейчас на одном урле выдаешь микс языков. не надо так
Nikita
John
у меня получается вот такая ситуация: у меня есть мидлware который получает текущую локаль по урлу, например ссылка на японскую версию сайта выглядит вот так: site.ru/jp
John
и получается он берет jp и ставит эту локаль
John
все ок все работает
John
но когда я хочу при просто заходе на сайт site.ru определить язык по локали браузера, то он его определяет, ставит локаль нужную но сайт выглядит также site.ru
Nik
Nikita
Хорошо, покажи полную запись тогда. Что ж ты кусками кидаешь :)
Nik
John
а мне нужно чтобы ставилось site.ru/JP и притом при переходе на просто site.ru который по умолчанию на английском, он не ставил заново японский язык по локали, иначе клиент из японского сектора так и не сможет посмотреть английскую версию сайта
Nikita
Сделай дамп реквеста, покажи что приходит.
Nikita
true/false это у тебя точно строки?
Алексей
Ну, могу сделать dd
Алексей
Момент.
Nikita
так, а я шо просил))
Алексей
так, а я шо просил))
array:17 [
"firstName" => "ads"
"insertion" => "adfs"
"lastName" => "adsf"
"street" => null
"house" => null
"zip" => null
"city" => null
"email" => "s05@kshlerin.org"
"phone" => null
"rate" => null
"function" => "Cashier"
"isSystemUser" => "true"
"role" => "Accountant"
"pin" => "213"
"systemUserID" => "Select System User"
"existing" => "false"
"new" => "true"
]
Nikita
Так. А теперь один раз - что работает не так?)
Nikita
Потому что вроде всё ок
Алексей
Потому что вроде всё ок
Это правило тоже не прокатывает:
"systemUserID" => "required_if:existing,true|integer|exists:system_users,id"
Nikita
почему не прокатывает?
при existing = true и пустом systemUserID получаем феил
Nikita
нет?
Nikita
Алексей
Когда поле existings = false, поле systemUserID валидироваться не должно.
Nikita
ну так оно и не валидируется
Nikita
хочешь с пустым пропустит, хочешь вообще без поля
Nikita
стоп
Nikita
у тебя ж там ещё другие правила)
Bo
Nikita
Именно так и работает required_if
Алексей
Nikita
Ну так я тебе о том же
Nikita
Другие правила фейлятся
Nikita
А не это
Алексей
А не это
Нет, Никит, именно это. Потому что клиентская часть получает сообщение:
{"message":"The given data was invalid.","errors":{"systemUserID":["The system user i d must be an integer."]}}
Nikita
😂
Nikita
["The system user i d must be an integer."]}
Nikita
действительно
Nikita
проблема в require
Nikita
Когда уже люди начнут учить программирование с базового курса английского))
Nikita
Тебе сам ларавел говорит что значение должно быть целым
Nikita
А ты пол часа доказываешь что проблема в require)
Алексей
проблема в require
Ну, как я понимаю это правило:
Если existings = true, тогда выполнять integer|exists:system_users,id .
Иначе - не выполнять.
Теперь: existings у меня = false.
Вопрос почему выполняется integer|exists:system_users,id ?
Nikita
Потому что ты неправильно понял валидацию)
Nikita
Это отдельные правила
Алексей
Отдельные?
Алексей
Они же связанными должны быть.
Alexander
Пиши кастомное правило для валидации и не морочь голову
Nikita
Можно поморочить через sometime
Nikita
Но я никогда не использовал его, так что хз как там оно работает
Nikita
Alexander
sometimes не поможет ему потому что он включает правила если поле присутсвует
Alexander
а оно у него всегда присутсвует
Nikita
А этого в условии небыло
Nikita
про то что всегда присутствует)
Alexander
Ну судя по всему у него там селект какой то
Nikita
но в целом я за кастомное правило
Alexander
и в селекте дефолт значение стоит текстовое
Алексей
Кому должны?)
То есть, даже если existings = false, то остальные правила, следующие за required, будут выполняться?
Alexander
да
Alexander
https://laravel.com/docs/5.6/validation#custom-validation-rules
Alexander
пиши
Алексей
Жесть, попробовал:
systemUserID" => "required_if:roles,blabla|integer|exists:system_users,id"
Результат тот же.