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

Атрибут query

Атрибут query вешается на аргумент метода контроллера и извлекает значение из параметров GET-запроса (строки запроса). Первым параметром передаётся имя параметра, значение которого нужно получить. Вторым параметром можно указать значение по умолчанию, если параметр отсутствует.

Синтаксис

#[query(name, default: value)]

Пример

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

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

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

"page: 5"

Пример

Давайте получим параметр name и укажем значение по умолчанию:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentHttpFoundationAttributeQuery; class ArticleController extends AbstractController { #[Route('/user', name: 'article_user')] public function user(#[Query('name', default: 'guest')] string $name): Response { return new Response('hello ' . $name); } } ?>

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

"hello abcde"

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

"hello guest"

Пример

Давайте получим несколько параметров одновременно:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentHttpFoundationAttributeQuery; class ArticleController extends AbstractController { #[Route('/article/list', name: 'article_list')] public function list( #[Query('page')] int $page, #[Query('limit')] int $limit ): Response { return new Response('page: ' . $page . ', limit: ' . $limit); } } ?>

Результат выполнения кода для адреса /article/list?page=2&limit=10:

"page: 2, limit: 10"

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

  • класс Request,
    который представляет HTTP-запрос
  • атрибут request,
    который передаёт данные POST-запроса
  • атрибут attributes,
    который передаёт атрибуты маршрута
  • метод getQueryString,
    который возвращает строку запроса целиком
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить