我想要做的很容易,但我还没有找到解决方案。在我的应用程序中,我想按主题,语言和范围组织所有模板。为此,需要为正确的模板构建和搜索多个路径。
例如,请求Acme:Default:editAction,默认情况下应加载Acme:Default:edit.html.twig模板。
APP_PATH/src/Acme/DefaultBundle/Resources/views/Default/edit.html.twig
现在我想更改此行为,并按给定顺序在该模板的多个路径中搜索。
1. VIEWS_PATH/%theme%/%lang%/%scope%/Default/edit.html.twig
2. VIEWS_PATH/%theme%/%lang%/Default/edit.html.twig
3. VIEWS_PATH/%theme%/Default/edit.html.twig
4. VIEWS_PATH/Default/edit.html.twig
最简单的方法是什么?在config或事件监听器中的某个位置添加路径或覆盖TemplateLoaderClass?
请不要向任何捆绑包推荐。我只是想了解Symfony(2.1)/ Twig在这一点上是如何工作的。
答案 0 :(得分:0)
绑定一个事件监听器,该监听器将Templating服务作为参数并修改kernel.view事件中的模板名称。
请参阅https://stackoverflow.com/a/12403233/1649758以获取此代码示例。