首页 文章

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

提问于
浏览
1

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

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

1 回答

  • 2
    • 您可以使用 {% render %} 嵌入控制器操作 .

    • 使用全局变量在twig渲染的所有模板中注入menuitems .

    • 使用函数获取所有菜单项并使用 {% include %} 部分渲染它

    • 创建自己的标签 {% myAwesomeMenu %}

相关问题