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

required_without

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

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

Синтаксис

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $rules = [ 'field' => 'required_without:other_field1,other_field2' ]; ?>

Пример

Давайте создадим правило, которое требует заполнения поля 'phone', если поле 'email' отсутствует в запросе:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $data = [ 'name' => 'John Doe', 'phone' => '+1234567890' ]; $rules = [ 'phone' => 'required_without:email' ]; $validator = Validator::make($data, $rules); if ($validator->fails()) { echo "Validation failed: " . $validator->errors()->first(); } else { echo "Validation passed"; } ?>

Результат выполнения кода:

"Validation passed"

Пример

Давайте проверим случай, когда поле 'email' отсутствует, а поле 'phone' тоже не заполнено:

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $data = [ 'name' => 'John Doe' ]; $rules = [ 'phone' => 'required_without:email' ]; $validator = Validator::make($data, $rules); if ($validator->fails()) { echo "Validation failed: " . $validator->errors()->first(); } else { echo "Validation passed"; } ?>

Результат выполнения кода:

"Validation failed: The phone field is required when email is not present."

Пример

Давайте используем правило с несколькими полями. Поле 'phone' будет обязательным, если отсутствует хотя бы одно из полей 'email' или 'telegram':

<?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; $data = [ 'name' => 'Jane Doe', 'email' => 'jane@example.com' ]; $rules = [ 'phone' => 'required_without:email,telegram' ]; $validator = Validator::make($data, $rules); if ($validator->fails()) { echo "Validation failed: " . $validator->errors()->first(); } else { echo "Validation passed"; } ?>

Результат выполнения кода:

"Validation failed: The phone field is required when email / telegram is not present."

Пример

Давайте рассмотрим использование правила в контроллере. Создадим форму, где пользователь должен указать хотя бы один способ связи:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class ContactController extends Controller { public function store(Request $request) { $rules = [ 'email' => 'email', 'phone' => 'required_without:email|string', 'address' => 'required_without:email,phone|string' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { return response()->json([ 'errors' => $validator->errors() ], 422); } return response()->json([ 'message' => 'Contact saved successfully' ]); } } ?>

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

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