我使用symfony2,我安装了FosUserBundle,我创建了一个捆绑UserBundle,如FosUserBundle在线文档中所示。到现在为止还挺好。 我还创建了另一个控制器,并且我能够以这种方式访问记录的用户信息:
$user = $this->container->get('security.context')->getToken()->getUser();
现在想象一下,在我的网站中,对于所有页面/控制器,我需要显示一些用户信息,甚至是简单的" Welcome MyUser"在页面顶部(所以在base.html.twig中)。我不想在所有控制器中复制上面的行,那么获取此信息一次并将其传递给基本模板的最佳位置在哪里?
答案 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 %}