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

Атрибут attributes класса Request

Атрибут attributes класса Request возвращает объект ParameterBag, который хранит дополнительные параметры запроса. Эти параметры не являются частью query (GET-параметры), request (POST-параметры), cookies или files. Они устанавливаются программно через метод set или автоматически при маршрутизации, когда в URL есть динамические сегменты. Атрибут attributes доступен только для чтения и возвращает объект ParameterBag, из которого можно извлекать значения через метод get.

Синтаксис

$request->attributes->get('key');

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/{slug}', name: 'article_show')] public function show(Request $request): Response { $slug = $request->attributes->get('slug'); return new Response($slug); } } ?>

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

abcde

Пример

Давайте установим собственный атрибут в объект Request и затем извлечём его:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(Request $request): Response { $request->attributes->set('user', 'hello'); $user = $request->attributes->get('user'); return new Response($user); } } ?>

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

hello

Пример

Давайте проверим наличие атрибута с помощью метода has:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/check', name: 'article_check')] public function check(Request $request): Response { $request->attributes->set('key', 'abcde'); if ($request->attributes->has('key')) { return new Response('attribute exists'); } return new Response('attribute not found'); } } ?>

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

"attribute exists"

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

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