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

Правило exclude_if

Правило exclude_if применяется к полю формы при валидации и исключает это поле из результата валидации, если переданное поле соответствует указанному значению. Первым параметром передаётся имя поля, которое нужно проверить, вторым - значение, при котором текущее поле будет исключено.

Синтаксис

<?php $rules = [ 'field' => 'exclude_if:other_field,value' ]; ?>

Пример

Давайте исключим поле 'phone', если поле 'contact_method' равно 'email':

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class UserController extends Controller { public function store(Request $request) { $rules = [ 'name' => 'required|string', 'contact_method' => 'required|in:email,phone', 'email' => 'exclude_if:contact_method,phone|required|email', 'phone' => 'exclude_if:contact_method,email|required|string' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()]); } $data = $validator->validated(); return $data; } } ?>

Результат выполнения кода при отправке формы с contact_method = 'email':

[ "name" => "John Doe", "contact_method" => "email", "email" => "john@example.com" ]

Пример

Давайте рассмотрим использование правила с несколькими условиями:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; class OrderController extends Controller { public function store(Request $request) { $rules = [ 'type' => 'required|in:physical,digital', 'address' => 'exclude_if:type,digital|required|string', 'shipping_method' => 'exclude_if:type,digital|required|in:standard,express' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()]); } $data = $validator->validated(); return $data; } } ?>

Результат выполнения кода при отправке формы с type = 'digital':

[ "type" => "digital" ]

Пример

Давайте используем правило в классе запроса FormRequest:

<?php namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; class ProductRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'name' => 'required|string', 'has_discount' => 'required|boolean', 'discount' => 'exclude_if:has_discount,false|required|numeric|min:0|max:100' ]; } } ?>

Результат выполнения кода при отправке формы с has_discount = false:

[ "name" => "Laptop", "has_discount" => false ]

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

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