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

Параметр methods атрибута Route

Параметр methods атрибута Route задаёт список HTTP-методов, при которых срабатывает маршрут. По умолчанию маршрут отвечает на любой метод. Если указать методы, то запрос с другим методом вернёт ошибку 405.

Синтаксис

#[Route(path, name: name, methods: ['GET', 'POST'])]

Пример

Давайте ограничим маршрут только GET-запросом:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index', methods: ['GET'])] public function index(): Response { return new Response('hello'); } } ?>

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

"hello"

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

"405 Method Not Allowed"

Пример

Давайте разрешим сразу два метода GET и POST:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index', methods: ['GET', 'POST'])] public function index(): Response { return new Response('hello'); } } ?>

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

"hello"

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

"hello"

Пример

Давайте используем атрибуты Get и Post вместо параметра methods:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentRoutingAttributeGet; use SymfonyComponentRoutingAttributePost; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] #[Get] #[Post] public function index(): Response { return new Response('hello'); } } ?>

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

"hello"

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

  • атрибут Route,
    который вешает метод контроллера на URL
  • атрибут Get,
    который вешает обработчик на GET-запрос
  • атрибут Post,
    который вешает обработчик на POST-запрос
  • параметр path,
    который задаёт путь маршрута
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить