Symfony2属性包

时间:2014-01-13 10:51:21

标签: php session symfony

我的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 \ Builders \ PageBundle \ Entity \ Cart是一个实现\ Symfony \ Component \ HttpFoundation \ Session \ Attribute \ AttributeBagInterface的对象。

在我的代码中,我执行以下操作:

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

并且它设置正确,但是在我检索属性“name”时的下一个请求中,我将其设置为null。

如果您需要更多信息,请询问。

感谢您的时间。

1 个答案:

答案 0 :(得分: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方法(例如,检查参数是否存在)。