Константа DIGITS класса Requirement
Константа DIGITS класса Requirement
содержит регулярное выражение \d+.
Она используется в параметре requirements
атрибута Route или в настройках маршрута,
чтобы ограничить значение параметра только цифрами.
Если значение параметра не соответствует шаблону,
Symfony не сопоставит маршрут и вернёт ошибку 404.
Синтаксис
Requirement::DIGITS
Пример
Давайте создадим маршрут с параметром id,
который принимает только цифры:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Routing\Requirement\Requirement;
class ArticleController extends AbstractController
{
#[Route('/article/{id}', name: 'article_show', requirements: ['id' => Requirement::DIGITS])]
public function show(int $id): Response
{
return new Response('article ' . $id);
}
}
?>
Результат выполнения кода для адреса /article/123:
"article 123"
Результат выполнения кода для адреса /article/abcde:
404 Not Found
Пример
Давайте используем константу DIGITS
в двух параметрах маршрута одновременно:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Routing\Requirement\Requirement;
class ArticleController extends AbstractController
{
#[Route('/user/{userId}/article/{articleId}', name: 'user_article', requirements: ['userId' => Requirement::DIGITS, 'articleId' => Requirement::DIGITS])]
public function userArticle(int $userId, int $articleId): Response
{
return new Response('user ' . $userId . ', article ' . $articleId);
}
}
?>
Результат выполнения кода для адреса /user/5/article/10:
"user 5, article 10"
Результат выполнения кода для адреса /user/abcde/article/10:
404 Not Found
Смотрите также
-
класс
Requirement,
который содержит набор готовых требований к параметрам -
константа
POSITIVE_INT,
которая требует положительное целое число -
параметр
requirements,
который задаёт требования к параметрам маршрута -
атрибут
Route,
который вешает метод контроллера на URL