我正在symfony2中开发一个购物车。我添加了产品,并在会话中存储。为了显示购物车(它在每一页的顶部),目前我正在执行:
$session = new Session();
在每个控制器的每个动作中。
最好的方法是什么?
在symfony2框架中,会话是作为服务公开的,因此最好不要让容器自己管理会话生命周期。您也可以将其注入到您的自定义服务中。因此,例如,您可以在会话中设置一个对象,如:
通用控制器:
$user_id = $this->get('session')->set('user_id',null /*default value*/);
$this->get('session')->set('product_id',$product_id);
请参阅文档以获取进一步的参考。
您还可以访问分支中的会话服务,如下所示:
{{app.session.get('product_id')}}
希望得到帮助。