我需要从基本模板(twig)中的实体获取数据,但不从控制器渲染此数据。
具体来说,我想实现菜单。存储在数据库中的菜单标签(页面实体)。我有很多控制器,我不想重复每个控制器中的实体处理代码。
我可以扩展控制器的类,但我想避免这样的事情:
return $this->render('... .html.twig',
array(
...
'menu' => $labels,
...
)
);
在每个控制器中。
答案 0 :(得分:3)
这是embedded controller的完美用例。您可以从模板中调用新控制器以呈现响应的一部分,在本例中为菜单。它可以具有控制器可以具有的任何逻辑,这意味着您可以查询数据库,构建菜单结构并呈现twig文件以将其输出为html。