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

Константа POSITIVE_INT класса Requirement

Константа POSITIVE_INT класса Requirement содержит регулярное выражение, которое разрешает только целые положительные числа: 1, 2, 3 и так далее. Она используется в параметре requirements атрибута Route, чтобы ограничить значение динамического сегмента URL. Если адрес не соответствует шаблону, Symfony вернёт ошибку 404.

Синтаксис

#[Route('/path/{id}', requirements: ['id' => Requirement::POSITIVE_INT])]

Пример

Давайте создадим маршрут, который принимает только положительные целые числа в параметре 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::POSITIVE_INT])] public function show(int $id): Response { return new Response('article ' . $id); } } ?>

Результат выполнения кода для адреса /article/5:

"article 5"

Результат выполнения кода для адреса /article/0:

"404 Not Found"

Пример

Давайте проверим, что отрицательное число не пройдёт валидацию:

<?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/{id}', name: 'user_show', requirements: ['id' => Requirement::POSITIVE_INT])] public function user(int $id): Response { return new Response('user ' . $id); } } ?>

Результат выполнения кода для адреса /user/-1:

"404 Not Found"

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

  • класс Requirement,
    который содержит набор готовых регулярных выражений
  • параметр requirements,
    который задаёт ограничения для параметров маршрута
  • константа DIGITS,
    которая пропускает только цифры
  • атрибут Route,
    который вешает метод контроллера на указанный URL
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить