1

我是 Symfony2 和 FOSUserBundle 的初学者,尽管到目前为止我很喜欢它。截至目前,我可以覆盖现有模板(例如 layout.html.twig),以使 /login、/profile 等符合我网站其余部分的风格。但是,在使用 FOSUserBundle 之前,我的树枝从 php 控制器中获取了导航栏和其他小部件中的链接。所以我的twig 对有一个主页链接或帐户页面一无所知,例如我的base.html.twig 循环遍历一系列要呈现的各种对象。过去,我会在调用 twig 时将这些作为变量传递,但现在 FOSUserBundle 完成了所有工作,这些变量未填充。

一种解决方案是覆盖所有 FOSUserBundle 控制器,找到它们调用模板引擎的位置,并挂钩全局函数以获取当前导航栏,获取当前状态栏等。另一种解决方案是让 twig 知道所有潜在的小部件,并根据 app.user 信息关闭。真的,我想要的是让 FOSUserBundle 在移交给树枝之前附加一些信息。我想这样做而不必修改或覆盖一堆代码。谢谢!

4

1 回答 1

2
  • 您可以使用{% render %}.
  • 使用全局变量在 twig 呈现的所有模板中注入菜单项。
  • 使用函数获取所有菜单项并使用部分渲染它{% include %}
  • 创建自己的标签{% myAwesomeMenu %}
于 2012-07-09T08:25:08.313 回答