Twig 细枝:覆盖嵌入标记中定义的块
是否有方法覆盖内部定义的块并在子模板的父模板中嵌入标记。例如:我有三个模板:Twig 细枝:覆盖嵌入标记中定义的块,twig,Twig,是否有方法覆盖内部定义的块并在子模板的父模板中嵌入标记。例如:我有三个模板:a、b和ca嵌入b和c扩展a {# a.html.twig #} {% embed b.html.twig %} {% block content %} laksjflkj {% block placeholder %} I want to override this template in c, it is actually defined here and has nothing to d
a
、b
和c
a
嵌入b
和c
扩展a
{# a.html.twig #}
{% embed b.html.twig %}
{% block content %}
laksjflkj
{% block placeholder %}
I want to override this template in c, it is actually defined here and has nothing to do with b
{% endblock placeholder %}
{% endblock content %}
{% endembed %}
如何覆盖
c.html.twig
中的占位符
块?您必须创建一个名为d.html.twig
的新文件,该文件扩展c.html.twig
并覆盖占位符
块,如下所示:
{# d.html.twig #}
{% extends 'c.html.twig' %}
{% block placeholder %}
Overrided !
{% endblock placeholder %}
要获得提示,您可以查看小树枝的编译代码(上下文下面的小链接)-应该与继承顺序和范围相关。我现在没有时间看,但这是个好问题,我没有。这是一个很好的解决方法,但它没有回答问题。问题是如何直接在嵌入模板中覆盖嵌入模板中的块。您的解决方案并不能解决那个特定的问题,但它解决了潜在的问题。
{# c.html.twig #}
{% extends 'a.html.twig' %}
{% block placeholder %}
let's override the block defined inside a
{% endblock placeholder %}
{# d.html.twig #}
{% extends 'c.html.twig' %}
{% block placeholder %}
Overrided !
{% endblock placeholder %}