我已经开始使用Symfony2 Framework,这对我来说非常棒。 在创建第一个包以使用Symfony2重建现有项目后,我遇到了这个问题:
我已在 base.html.twig 中创建了{% block navigation %}
,我的导航位于此处。
然后,在我的捆绑包中,我扩展了base.html.twig并且导航是可见的。
一切都很好。
我的问题是我想向登录用户显示问候语,但 base.html.twig 没有逻辑或容器,我想知道如何&# 34;推"用户信息,因此我不需要在每个包的控制器中定义用户信息。
目前,我的控制器操作如下所示:
public function indexAction()
{
$sUser = $this->getUser();
return $this->render('@WhatEver/index.html.twig', array(
'sUser' => $sUser
));
}
所以我的问题是:如何管理我的项目,以便每个包中都存在导航中的用户信息?
Twig Extension是正确的方法吗? 或者我是否需要更改包含模板的方式?
感谢所有能帮助我解决这个问题的人!
答案 0 :(得分:5)
标准的Symfony用户可以通过使用直接在Twig中访问;
{{ app.user.username }}
答案 1 :(得分:1)
您可以在会话中设置UserName
然后你可以用{{ session.username }}
另一种可能性是FOS:UserBundle
。如果用户已登录,您可以使用{{ app.user.name }}
显示它。
第三个选项是Twig Extension