如何使用Symfony2和FosUserBundle将用户信息传递给模板

时间:2014-10-23 08:32:22

标签: symfony fosuserbundle

我使用symfony2,我安装了FosUserBundle,我创建了一个捆绑UserBundle,如FosUserBundle在线文档中所示。到现在为止还挺好。 我还创建了另一个控制器,并且我能够以这种方式访问​​记录的用户信息:

$user = $this->container->get('security.context')->getToken()->getUser();

现在想象一下,在我的网站中,对于所有页面/控制器,我需要显示一些用户信息,甚至是简单的" Welcome MyUser"在页面顶部(所以在base.html.twig中)。我不想在所有控制器中复制上面的行,那么获取此信息一次并将其传递给基本模板的最佳位置在哪里?

1 个答案:

答案 0 :(得分:0)

对于您提供的示例“Welcome MyUser”,您可以使用

在twig模板中获取此var
 {% if is_granted("ROLE") %}
    Hi {{ app.user.username }}
{% endif %}

这是,如果你不需要逻辑

此外,如果您不知道它,您可以在树枝中使用遗产,这样您就可以使用此fosuser var创建navbar.html.twig,然后在所有模板中创建

{% extends "AcmeMyBundle::navbar.html.twig" %}
{% block body %}
   ....
{% endblock %}