Метод whereUuid
Метод whereUuid применяется к объекту маршрута в Laravel и позволяет задать ограничение для параметра, требуя, чтобы его значение было строкой в формате UUID (Universally Unique Identifier). Этот метод является сокращением для записи where('param', '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'). Первым параметром передаётся имя параметра маршрута, который требуется проверить.
Синтаксис
<?php
use Illuminate\Support\Facades\Route;
Route::get('/users/{uuid}', function ($uuid) {
// ...
})->whereUuid('uuid');
?>
Пример
Определим маршрут для получения информации о пользователе по его UUID-идентификатору:
<?php
use Illuminate\Support\Facades\Route;
use App\Models\User;
Route::get('/users/{uuid}', function ($uuid) {
$user = User::where('uuid', $uuid)->firstOrFail();
return "User found: " . $user->name;
})->whereUuid('uuid');
?>
Пример
В этом примере мы создаём группу маршрутов для работы с постами, где идентификатор поста должен быть UUID. Маршрут show будет доступен только если параметр 'post' является корректным UUID:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;
Route::prefix('/posts')->group(function () {
Route::get('/{post}', [PostController::class, 'show'])
->whereUuid('post');
});
?>
Результат выполнения кода:
"Маршрут /posts/123e4567-e89b-12d3-a456-426614174000 - доступен"
"Маршрут /posts/not-a-uuid - вернёт 404"
Пример
Рассмотрим использование whereUuid вместе с методом whereNumber для разных параметров в одном маршруте:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\OrderController;
Route::get('/orders/{categoryId}/{orderUuid}', [OrderController::class, 'show'])
->whereNumber('categoryId')
->whereUuid('orderUuid');
?>
Результат выполнения кода:
"Запрос /orders/15/550e8400-e29b-41d4-a716-446655440000 - обработан"
"Запрос /orders/abc/550e8400-e29b-41d4-a716-446655440000 - 404"
"Запрос /orders/15/invalid-uuid - 404"
Смотрите также
-
метод
where,
который позволяет задать произвольное регулярное выражение для параметра -
метод
whereNumber,
который проверяет, что параметр является числом -
метод
whereAlpha,
который проверяет, что параметр содержит только буквы -
метод
whereUlid,
который проверяет, что параметр соответствует формату ULID