Symfony网站在导航中包含动态内容(从数据库加载)

时间:2015-01-06 14:55:30

标签: php symfony twig

我正在处理的网站有一个名为categories的导航菜单项,它是一个包含db中某些条目的下拉列表(用户可以从管理面板调整类别。)导航位于{{ 1}}文件由所有其他文件扩展。

问题:获得这些参赛作品的最佳方式是什么?我想到的唯一方法就是使用base.html.twig来调用一个新的请求,在我看来有点矫枉过正,并且会降低页面的速度。有没有更好的方法呢?可能是每个请求都调用的事件,并且能够将数据传输到视图文件?

1 个答案:

答案 0 :(得分:2)

你有两个很好的选择来实现这个目标:

  1. 使用twig模板中的render()从控制器调用特定方法(如您在消息中所述)
  2. 创建一个枝条扩展来渲染菜单,非常简单:http://symfony.com/doc/current/cookbook/templating/twig_extension.html
  3. 在我看来,您应该使用第一个选项(控制器),因为您只需要将菜单渲染一次。 Twig扩展更好地设计为可以在多个模板中重用。

    关于您的性能问题,请不要担心,您只需要缓存菜单,因为它不会经常更改,并且在后台更新菜单时会使缓存无效。

    此致