Я пытаюсь выполнить проверку ввода в Laravel с несколько сложным условием "или".
Мне нужен валидатор для проверки ввода (пусть он пройдет), если его значение присутствует в таблицу спецификаций c или ее значение равно «other».
Пока что у меня есть:
$validator = Validator::make($data, [
...
'doc_organization' => ['required_with:rb_regist,doctor, exists:user_organizations,full_name'], // TODO: must exist in user_organizations table or be "other"
'doc_custom_organization' => ['required_if:doc_organization,other', 'max:160'],
...
Я посмотрел на пользовательские правила проверки Laravel, правила условного добавления и т. д., а также следующие сообщения:
Laravel Проверка с помощью или
Проверка правил required_if с другим условием (Laravel 5.4)
Но я не могу придумать пользовательское правило, в котором я не запрашиваю всю таблицу, чтобы узнать, существует ли имя (в случае, если это не «другое») ). Это сделало бы правило слишком сложным для его цели.
Другое решение, которое у меня есть, - добавить запись с именем "other" в таблицу user_organizations, что не идеально.
Я пропустил что-то? Как создать требуемое условие без сложного настраиваемого правила проверки?
Большое спасибо.