Проверка Laravel, если оба поля пусты, то ошибка. Но если одно равно нулю, тогда требуется другое

#laravel #validation #rules

Вопрос:

Я пытаюсь создать правило, если одно пустое или отсутствует, тогда требуется другое, но если оба отсутствуют, то это выдает ошибку. Я использовал это, но если оба поля пусты, то это не дает никакой ошибки

 'inventory_storage_container_id'        => 'required_if:inventory_storage_space_id,=,null|integer|exists:inventory_storage_containers,id',
'inventory_storage_space_id'            => 'required_if:inventory_storage_container_id,=,null|integer|exists:inventory_storage_spaces,id',
 

Что я должен делать? Это другой сценарий, если я не включаю оба поля в тело запроса, это не выдает никакой ошибки, но мне нужна ошибка, если оба пусты. Этот раздел не дублируется .

Ответ №1:

попробуйте required_without

 'inventory_storage_container_id'        => 'required_without:inventory_storage_space_id|integer|exists:inventory_storage_containers,id',
'inventory_storage_space_id'            => 'required_without:inventory_storage_container_id|integer|exists:inventory_storage_spaces,id',
 

Комментарии:

1. Тем не менее, оно передает правило, если оба поля отсутствуют в запросе. Я думаю, мне нужно обработать это на стороне контроллера, а не в правиле проверки.

2. @MajidJavaid Могу ли я увидеть контроллер?

3. Я спрашиваю, нет ли правила для этого, тогда мне нужно обработать его на стороне контроллера?

4. Ваш случай может быть обработан с помощью проверки Laravel, вам не нужно делать это на контроллере.

5. @MajidJavaid этот ответ правильный. Если это не работает для вас, то вы, должно быть, делаете что-то неправильно при отправке или проверке вашего ввода