我是Symfony2和FOSUserBundle的初学者,虽然到目前为止我很喜欢它 . 到目前为止,我可以覆盖现有模板(例如layout.html.twig),以符合/登录,/配置文件等,以符合我网站其余部分的风格 . 但是,在使用FOSUserBundle之前,我的twig得到了导航栏中的链接和来自php控制器的其他小部件 . 因此,我的树枝对主页链接或帐户页面一无所知,例如我的base.html.twig遍历要呈现的各种对象的数组 . 在过去,我会在调用twig时将它们作为变量传递,但是现在FOSUserBundle完成所有工作,这些变量都是未填充的 .
一种解决方案是覆盖所有FOSUserBundle控制器,找到它们称为模板引擎的位置,并挂钩全局函数以获取当前导航栏,获取当前状态栏等 . 另一种解决方案是让树枝知道所有潜在的小部件,并根据app.user信息切换 . 真的,我想要的是让FOSUserBundle在递交给twig之前附加一些信息 . 我想这样做而不必修改或覆盖一堆代码 . 谢谢!
1 回答
您可以使用
{% render %}
嵌入控制器操作 .使用全局变量在twig渲染的所有模板中注入menuitems .
使用函数获取所有菜单项并使用
{% include %}
部分渲染它创建自己的标签
{% myAwesomeMenu %}