2

我已经开始使用 Symfony2 框架,它对我来说非常棒。在使用 Symfony2 创建第一个包以重建现有项目后,我遇到了这个问题:

{% block navigation %}base.html.twig中创建了一个,用于放置我的导航。然后,在我的包中,我扩展了 base.html.twig 并且导航可见。一切安好。

我的问题是我想向登录用户显示问候语,但是base.html.twig没有逻辑或容器,我想知道如何“推送”用户信息,这样我就不需要在每个 bundle 的控制器中定义用户信息。

目前,我的控制器操作如下所示:

public function indexAction()
{
    $sUser = $this->getUser();
    return $this->render('@WhatEver/index.html.twig', array(
        'sUser'  => $sUser
    ));
}

所以我的问题是:如何管理我的项目,以便导航中的用户信息存在于每个捆绑包中?

Twig Extension 是正确的方法吗?还是我需要更改包含模板的方式?

感谢所有可以帮助我的人!

4

2 回答 2

5

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

{{ app.user.username }}
于 2014-12-18T15:55:13.720 回答
1

您可以在会话中设置用户名

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

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

第三种选择是 Twig Extension

于 2014-12-18T15:42:42.563 回答