Symfony2在导航中获取用户名

时间:2014-12-18 15:37:17

标签: php symfony templates twig bundles

我已经开始使用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是正确的方法吗? 或者我是否需要更改包含模板的方式?

感谢所有能帮助我解决这个问题的人!

2 个答案:

答案 0 :(得分:5)

标准的Symfony用户可以通过使用直接在Twig中访问;

{{ app.user.username }}

答案 1 :(得分:1)

您可以在会话中设置UserName

然后你可以用{{ session.username }}

来调用它

另一种可能性是FOS:UserBundle。如果用户已登录,您可以使用{{ app.user.name }}显示它。

第三个选项是Twig Extension