没有控制器如何将数据发送到基本模板?

时间:2014-02-23 05:30:39

标签: symfony controller twig

我需要从基本模板(twig)中的实体获取数据,但不从控制器渲染此数据。

具体来说,我想实现菜单。存储在数据库中的菜单标签(页面实体)。我有很多控制器,我不想重复每个控制器中的实体处理代码。

我可以扩展控制器的类,但我想避免这样的事情:

    return $this->render('... .html.twig', 
                          array(
                          ...
                          'menu' => $labels,
                          ...
                           )
                        );

在每个控制器中。

1 个答案:

答案 0 :(得分:3)

这是embedded controller的完美用例。您可以从模板中调用新控制器以呈现响应的一部分,在本例中为菜单。它可以具有控制器可以具有的任何逻辑,这意味着您可以查询数据库,构建菜单结构并呈现twig文件以将其输出为html。