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

Правило uuid

Правило uuid используется для валидации полей формы, которые должны содержать корректный UUID версии 4. Это правило проверяет, что значение является строкой в формате xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, где каждый x - это шестнадцатеричная цифра. Особенно полезно при работе с внешними ключами, которые используют UUID вместо автоинкрементных идентификаторов.

Синтаксис

<?php use Illuminate\Validation\Rule; use Illuminate\Support\Facades\Validator; // В массиве правил 'field' => 'uuid' // Или с использованием Rule 'field' => Rule::uuid() ?>

Пример использования в контроллере

Давайте проверим, что переданный идентификатор является корректным UUID:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class ArticleController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'user_id' => 'required|uuid', 'title' => 'required|string|max:255', ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } // Валидация прошла успешно // $validated = $validator->validated(); return response()->json(['message' => 'Article created']); } } ?>

Пример использования с FormRequest

Более элегантный способ организации валидации - использование отдельного класса FormRequest:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class StoreArticleRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'user_id' => 'required|uuid|exists:users,id', 'category_id' => 'nullable|uuid', 'title' => 'required|string|max:255', 'content' => 'required|string', ]; } } ?>

Пример с пользовательским сообщением об ошибке

Вы можете настроить сообщение об ошибке для правила с помощью метода messages:

<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class UpdateArticleRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'id' => 'required|uuid', 'title' => 'string|max:255', 'content' => 'string', ]; } public function messages() { return [ 'id.uuid' => 'Идентификатор должен быть в формате UUID', 'id.required' => 'Идентификатор обязателен для заполнения', ]; } } ?>

Пример валидации массива UUID

Правило uuid можно комбинировать с правилом array для проверки списка идентификаторов:

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class PostController extends Controller { public function syncCategories(Request $request) { $validator = Validator::make($request->all(), [ 'post_id' => 'required|uuid', 'categories' => 'required|array', 'categories.*' => 'required|uuid|exists:categories,id', ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } $validated = $validator->validated(); return response()->json(['message' => 'Categories synced']); } } ?>

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

{"message": "Categories synced"}

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

{"categories.0": ["The categories.0 field must be a valid UUID."]}

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

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