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

Правило distinct

Правило distinct применяется для валидации массивов и проверяет, что все значения элементов внутри массива уникальны. Обычно используется при валидации полей типа array или при работе с вложенными массивами в формах. Правило не принимает дополнительных параметров и работает со строгим сравнением значений (===).

Синтаксис

Правило указывается в массиве правил валидации для поля типа array:

<?php $rules = [ 'items' => ['required', 'array', 'distinct'], ]; ?>

Пример

Базовое использование правила для проверки списка значений:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ItemController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'items' => ['required', 'array', 'distinct'], ]); echo "Validation passed!"; } } ?>

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

"Validation passed!"

Пример

Валидация массива с вложенными полями с использованием точечной нотации:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class OrderController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'products.*.id' => ['required', 'integer', 'distinct'], 'products.*.name' => ['required', 'string'], ]); echo "All products have unique IDs!"; } } ?>

Результат выполнения кода при успешной валидации:

"All products have unique IDs!"

Пример

Использование правила совместно с кастомными сообщениями об ошибках:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class TagController extends Controller { public function store(Request $request) { $validated = $request->validate([ 'tags' => ['required', 'array', 'distinct'], ], [ 'tags.distinct' => 'Tag list contains duplicate values.', ]); echo "Tags are valid!"; } } ?>

Результат выполнения кода при отправке данных с дубликатами:

"Tag list contains duplicate values."

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

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