从控制器中删除会话对象

时间:2015-02-18 05:17:05

标签: php symfony

我正在开发symfony2中的购物车。我添加了产品,我正在会话中存储。为了显示购物车(位于每个页面的顶部),目前我正在执行:

$session = new Session(); 

在每个控制器的每个动作中。

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

在symfony2框架中,会话作为服务公开,因此最好不要让容器自己管理会话生命周期,让容器为您完成。您也可以在自定义服务中注入此项。因此,例如,您可以在会话中设置对象,如:

通用控制器:

 $user_id = $this->get('session')->set('user_id',null /*default value*/);

 $this->get('session')->set('product_id',$product_id);

有关详细信息,请参阅doc

您还可以访问树枝中的会话服务,如下所示:

{{app.session.get('product_id')}}

希望得到这个帮助。