Константа UID_BASE32
Константа UID_BASE32 принадлежит классу Requirement
и содержит регулярное выражение для проверки значений,
являющихся Base32-идентификаторами (UID). Она используется
в параметре requirements атрибута Route,
чтобы ограничить допустимые значения переменных маршрута.
Это особенно полезно при работе с сущностями, у которых
первичный ключ представлен в формате Base32.
Синтаксис
Requirement::UID_BASE32
Пример
Давайте создадим маршрут, который принимает только Base32-идентификатор:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentRoutingRequirement;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show', requirements: ['id' => Requirement::UID_BASE32])]
public function show(string $id): Response
{
return new Response("Article ID: $id");
}
}
?>
Результат выполнения кода для адреса /article/01ARZ3NDEKTSV4RRFFQ69G5FAV:
"Article ID: 01ARZ3NDEKTSV4RRFFQ69G5FAV"
Если же передать значение, не соответствующее формату Base32,
например /article/abcde, Symfony вернёт ошибку 404.
Пример
Давайте используем константу вместе с параметром defaults:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentRoutingRequirement;
class ArticleController extends AbstractController
{
#[Route(
'/article/{id}',
name: 'article_show',
requirements: ['id' => Requirement::UID_BASE32],
defaults: ['id' => '01ARZ3NDEKTSV4RRFFQ69G5FAV']
)]
public function show(string $id): Response
{
return new Response("Article ID: $id");
}
}
?>
Результат выполнения кода для адреса /article:
"Article ID: 01ARZ3NDEKTSV4RRFFQ69G5FAV"
Смотрите также
-
класс
Requirement,
который содержит набор констант для проверки параметров -
константа
UUID,
которая задаёт регулярное выражение для UUID -
константа
ULID,
которая задаёт регулярное выражение для ULID -
параметр
requirements,
который задаёт требования к параметрам маршрута