РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
595 of 1392 menu

Правило required_with

Правило required_with используется в валидации данных Laravel и делает проверяемое поле обязательным к заполнению, если в запросе присутствует хотя бы одно из перечисленных полей. Правило принимает список имён полей через запятую. Если ни одно из указанных полей не присутствует в запросе, проверяемое поле становится необязательным.

Синтаксис

<?php use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; $validator = Validator::make($request->all(), [ 'field' => 'required_with:other_field,another_field', ]); ?>

В качестве параметров через запятую передаются имена полей, при наличии которых проверяемое поле становится обязательным.

Пример

Пусть поле 'phone' должно быть обязательно заполнено, если в запросе есть поле 'email':

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class UserController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'phone' => 'required_with:email', ]); if ($validator->fails()) { return $validator->errors(); } return "Validation passed"; } } ?>

Отправим запрос с полем 'email':

[ 'email' => 'user@example.com' ]

В этом случае поле 'phone' становится обязательным и его отсутствие вызовет ошибку валидации.

Пример

Пусть поле 'address' обязательно, если в запросе есть хотя бы одно из полей 'city' или 'zip':

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class OrderController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'address' => 'required_with:city,zip', 'city' => 'string|max:255', 'zip' => 'string|max:20', ]); if ($validator->fails()) { return $validator->errors(); } return "Validation passed"; } } ?>

Отправим запрос с полем 'city':

[ 'city' => 'Moscow' ]

Поле 'address' станет обязательным, так как присутствует хотя бы одно из полей из списка (в данном случае 'city').

Пример

Отправим запрос без полей 'city' и 'zip':

[ 'name' => 'John' ]

В этом случае поле 'address' необязательно, так как ни одно из указанных полей не присутствует в запросе.

Смотрите также

  • правило required,
    которое делает поле всегда обязательным
  • правило required_if,
    которое делает поле обязательным при выполнении условия
  • правило required_without,
    которое делает поле обязательным при отсутствии других полей
  • правило present,
    которое проверяет наличие поля в запросе
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить