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

Метод get класса FlashBag

Метод get класса FlashBag извлекает флеш-сообщения по указанному ключу и сразу удаляет их из сессии. Первым параметром передаётся ключ, вторым (необязательным) - значение по умолчанию, которое возвращается, если сообщений по ключу нет. Метод возвращает массив сообщений.

Синтаксис

public function get(string $type, array $default = []): array

Пример

Давайте добавим флеш-сообщение, а затем извлечём его методом get:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $flashBag = $this->container->get('session')->getFlashBag(); $flashBag->add('notice', 'article created'); $res = $flashBag->get('notice'); return new Response(implode(', ', $res)); } } ?>

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

article created

Пример

Давайте добавим несколько сообщений под одним ключом и извлечём их:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $flashBag = $this->container->get('session')->getFlashBag(); $flashBag->add('notice', 'article created'); $flashBag->add('notice', 'article published'); $flashBag->add('notice', 'article archived'); $res = $flashBag->get('notice'); return new Response(implode(', ', $res)); } } ?>

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

article created, article published, article archived

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $flashBag = $this->container->get('session')->getFlashBag(); $flashBag->add('notice', 'hello'); $first = $flashBag->get('notice'); $second = $flashBag->get('notice'); return new Response(json_encode([$first, $second])); } } ?>

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

[["hello"], []]

Пример

Давайте передадим значение по умолчанию для отсутствующего ключа:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(): Response { $flashBag = $this->container->get('session')->getFlashBag(); $res = $flashBag->get('notice', ['abcde']); return new Response(implode(', ', $res)); } } ?>

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

abcde

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

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