Установите Flash в Symfony 2.1 - PullRequest
14 голосов
/ 07 марта 2012

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

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

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

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

Ответы [ 3 ]

22 голосов
/ 07 марта 2012

Попробуйте:

$this->get('session')->getFlashBag()->set('type', 'message');
13 голосов
/ 05 октября 2012

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

$this->get('session')->getFlashBag()->add('type', 'message');
0 голосов
/ 17 ноября 2014

FYI:

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

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

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

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

...