Установите Flash в Symfony 2.1

Я адаптировал наш код для подготовки нашего кода к новой кодовой базе Symfony 2.1.

В 2.0. * мы можем установить Flash-сообщения, просто позвонив в службу сеанса в нашем контроллере, используя следующие

$this->get('session')->setFlash('type', 'message');

Я пробрался через новую документацию, мне просто интересно, был ли чистый путь, похожий на вышеизложенное; а не просто вызвать FlashBagInterface?

Ответы

Ответ 1

Try:

$this->get('session')->getFlashBag()->set('type', 'message');

Ответ 2

Кроме того, вы можете попробовать вместо этого метод add(), который не уничтожит другие флэш-сообщения:

$this->get('session')->getFlashBag()->add('type', 'message');

Ответ 3

FYI:

Компонент Symfony HttpFoundation имеет очень мощную и гибкую подсистему сеанса, которая предназначена для обеспечения управления сеансом через простой объектно-ориентированный интерфейс с использованием различных драйверов хранения сеансов.

FlashBagInterface имеет простой API:

  • set(): устанавливает атрибут по ключу;
  • get(): получает атрибут по ключу;
  • all(): возвращает все атрибуты в виде массива key = > value;
  • has(): возвращает true, если атрибут существует;
  • replace(): Устанавливает сразу несколько атрибутов: берет массив с ключом и устанавливает каждую пару ключ = > значение;
  • remove(): удаляет атрибут по ключу;
  • clear(): очистить все атрибуты.

Источник: Symfony2: Управление сеансом