我的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。
如果您需要更多信息,请询问。
感谢您的时间。
答案 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
方法(例如,检查参数是否存在)。