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

Метод getFlashBag

Метод getFlashBag класса Session возвращает объект FlashBag, который хранит flash-сообщения. Flash-сообщения - это данные, которые живут в сессии до следующего запроса, после чего автоматически удаляются. Параметров метод не принимает. Получить объект сессии можно через RequestStack или через аргумент SessionInterface в методе контроллера.

Синтаксис

$flashBag = $session->getFlashBag();

Пример

Давайте добавим flash-сообщение в одном действии контроллера и выведем его в другом:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/add', name: 'article_add')] public function add(Request $request): Response { $session = $request->getSession(); $flashBag = $session->getFlashBag(); $flashBag->add('success', 'article added'); return $this->redirectToRoute('article_show'); } #[Route('/article/show', name: 'article_show')] public function show(Request $request): Response { $session = $request->getSession(); $flashBag = $session->getFlashBag(); $messages = $flashBag->get('success'); return new Response(implode(', ', $messages)); } } ?>

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

"article added"

Пример

Давайте получим все flash-сообщения сразу с помощью метода all:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/flash', name: 'article_flash')] public function flash(Request $request): Response { $session = $request->getSession(); $flashBag = $session->getFlashBag(); $flashBag->add('success', 'article 1'); $flashBag->add('success', 'article 2'); $flashBag->add('error', 'article 3'); $all = $flashBag->all(); return new Response(json_encode($all)); } } ?>

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

{"success":["article 1","article 2"],"error":["article 3"]}

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

  • класс FlashBag,
    который хранит flash-сообщения сессии
  • метод add,
    который добавляет flash-сообщение в корзину
  • метод get,
    который забирает flash-сообщения по типу
  • класс Session,
    который управляет данными сессии
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить