2014-01-13 4 views
1

У меня проблема с мешком атрибутов symfony2.Symfony2 Мешок атрибута

Проблема заключается в том, что пакет атрибутов не является постоянным и после настройки некоторых атрибутов следующего запроса они возвращаются к умолчанию.

Я определяю сессию службы, как это:

CART_SESSION: 
    class: Symfony\Component\HttpFoundation\Session\Session 
    arguments: 
     - @session.storage 
     - @cart.session.attribute_bag 
     - @session.flash_bag 
cart.session.attribute_bag: 
    class: Backend\Builders\PageBundle\Entity\Cart 

Backend \ Строители \ PageBundle \ Entity \ Cart является объектом реализации \ Symfony \ Component \ HttpFoundation \ Session \ Attribute \ AttributeBagInterface.

В моем коде я сделать следующее:

$this->session->getBag('Cart')->set('name', 'Georgi'); 

и устанавливает его правильно, но на следующий запрос, когда я получить «имя» свойство я получить нулевой.

Если вам нужна дополнительная информация, спросите.

Спасибо за внимание.

ответ

0

Обратите внимание на то, как вы используете метод get из флеш-мешка. get метод также удаляет элемент из сумки.

Некоторые примеры:

$session->getFlashBag()->set('foo', 'bar'); 
if ($session->getFlashBag()->get('foo)) { // it returns array with value you've set 
    $bar = $session->getFlashBag()->get('foo'); // it returns null because you already get the data above 
} 

Итак, убедитесь, что вы не используете get метод, прежде чем это действительно необходимо (например, для проверки наличия параметра).

+0

Хорошо, есть ли способ использовать пространство имен в сеансах symfony2 без beint flashdata? – gprusiiski

+0

Извините, не могли бы вы перефразировать вопрос? Я не уверен, получу ли я это. – Cyprian

+0

Вот более подробное объяснение того, что я хочу сделать, и где моя проблема: http://stackoverflow.com/questions/21091999/symfony-2-session-namespace – gprusiiski

Смежные вопросы