FOSUserBundle,模板化之前的全局参数/函数

时间:2012-07-09 03:13:37

标签: symfony twig fosuserbundle

我是Symfony2和FOSUserBundle的初学者,虽然到目前为止我很喜欢它。到目前为止,我可以覆盖现有模板(例如layout.html.twig),以符合/登录,/配置文件等,以符合我网站其余部分的风格。但是,在使用FOSUserBundle之前,我的twig得到了导航栏中的链接和来自php控制器的其他小部件。因此,我的树枝对主页链接或帐户页面一无所知,例如我的base.html.twig遍历要呈现的各种对象的数组。在过去,我会在调用twig时将它们作为变量传递,但是现在FOSUserBundle完成所有工作,这些变量都是未填充的。

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

1 个答案:

答案 0 :(得分:2)

  • 您可以使用{% render %}嵌入控制器操作。
  • 使用全局变量在twig渲染的所有模板中注入menuitems。
  • 使用函数获取所有菜单项并使用{% include %}
  • 部分显示它
  • 创建自己的代码{% myAwesomeMenu %}