Константа DATE_YMD
Константа DATE_YMD класса Requirement содержит регулярное выражение,
которое проверяет, что значение параметра маршрута является датой
в формате YYYY-MM-DD. Константа используется в параметре
requirements атрибута Route или в методах
setRequirements и addRequirements.
Синтаксис
Requirement::DATE_YMD
Пример
Давайте потребуем, чтобы параметр date маршрута соответствовал дате в формате YYYY-MM-DD:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentRoutingRequirement;
class ArticleController extends AbstractController
{
#[Route('/article/{date}', name: 'article_date', requirements: ['date' => Requirement::DATE_YMD])]
public function article(string $date): Response
{
return new Response($date);
}
}
?>
Результат выполнения кода для адреса /article/2024-01-15:
"2024-01-15"
Результат выполнения кода для адреса /article/15-01-2024:
404 Not Found
Пример
Давайте применим константу DATE_YMD через метод setRequirements:
<?php
namespace AppController;
use SymfonyBundleFrameworkBundleControllerAbstractController;
use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentRoutingAttributeRoute;
use SymfonyComponentRoutingRequirement;
class ArticleController extends AbstractController
{
#[Route('/article/{date}', name: 'article_date')]
public function article(string $date): Response
{
return new Response($date);
}
public function configureRoutes(RouteCollection $routes): void
{
$routes->get('article_date')->setRequirements([
'date' => Requirement::DATE_YMD
]);
}
}
?>
Результат выполнения кода для адреса /article/2024-12-31:
"2024-12-31"
Смотрите также
-
класс
Requirement,
который содержит константы для требований маршрутов -
параметр
requirements,
который задаёт регулярные выражения для параметров -
константа
DIGITS,
которая проверяет только цифры -
константа
UUID,
которая проверяет идентификатор UUID