从事件侦听器更改树枝继承树
Change twig inheritance tree from event listener
在 example from the Symfony2 book 之后,我有一个 three-level 树枝继承:
app/Resources/views/base.html.twig
blog/layout.html.twig
blog/index.html.twig
每当请求中出现 X-fancyBox header 时,我想省略树的顶部节点 (base.html.twig)。
- 是否有任何方法可以从事件处理程序中更改继承树?
- 在什么情况下会发生这种情况?
在 twig 文档中找到 Making a layout conditional 部分后,我想出了以下解决方案。
{# app/Resources/views/blog/layout.html.twig #}
{% extends app.request.headers.has('X-fancyBox') ? 'base_fancybox.html.twig' : 'base.html.twig' %}
仍然想知道是否有更优雅的解决方案。
在 example from the Symfony2 book 之后,我有一个 three-level 树枝继承:
app/Resources/views/base.html.twig
blog/layout.html.twig
blog/index.html.twig
每当请求中出现 X-fancyBox header 时,我想省略树的顶部节点 (base.html.twig)。
- 是否有任何方法可以从事件处理程序中更改继承树?
- 在什么情况下会发生这种情况?
在 twig 文档中找到 Making a layout conditional 部分后,我想出了以下解决方案。
{# app/Resources/views/blog/layout.html.twig #}
{% extends app.request.headers.has('X-fancyBox') ? 'base_fancybox.html.twig' : 'base.html.twig' %}
仍然想知道是否有更优雅的解决方案。