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

Константа ASCII_SLUG

Константа ASCII_SLUG класса Requirement содержит готовое регулярное выражение, которое разрешает параметру маршрута принимать только символы ASCII-слага: строчные и прописные латинские буквы, цифры, а также дефис и подчёркивание. Обычно её передают в параметр requirements атрибута Route, чтобы ограничить значение динамического сегмента URL.

Использование этой константы избавляет от необходимости вручную писать регулярное выражение и снижает риск ошибки. Если значение параметра не соответствует шаблону слага, Symfony вернёт ответ 404.

Синтаксис

#[Route(path, name: name, requirements: ['param' => Requirement::ASCII_SLUG])]

Пример

Давайте повесим метод контроллера на адрес '/article/{slug}' и разрешим параметру slug принимать только ASCII-слаг:

<?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/{slug}', name: 'article_show', requirements: ['slug' => Requirement::ASCII_SLUG])] public function show(string $slug): Response { return new Response($slug); } } ?>

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

"abcde"

Пример

Давайте проверим, что значение с недопустимыми символами не попадёт в контроллер:

<?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/{slug}', name: 'article_show', requirements: ['slug' => Requirement::ASCII_SLUG])] public function show(string $slug): Response { return new Response($slug); } } ?>

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

404 Not Found

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

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