嫩枝嵌套多次

时间:2019-05-13 13:14:02

标签: twig

我正在尝试找出创建Twig组件的正确方法,该组件的嵌套深度为3。

我有一个树枝文件,该文件仅创建带有类的标题:

header.twig

<h2>{% block content %}{% endblock %}</h2>

然后是一个中级的树枝文件,该文件消耗了该标头以及其他低级树枝:

section.twig

<div class="section">
    {% block header %}
        {% embed "components/header.twig" %}
            {% block content %}
                {{ header }}
            {% endblock %}
        {% endembed %}
    {% endblock %}
</div>

最后是消耗该部分树枝的页面高级组件:

page.twig

<div class="page">
    {{ include("mid/section.twig", { header: fields.header }) }}
</div>

现在您可以在section.twig中看到,我可以覆盖创建的块,但是在最高级别page.twig中,我不能覆盖两次,因此必须使用include而不是嵌入。

对我来说,这感觉不正确,而且感觉很冗长。需要说明的是,我使用的是ACF,所以这就是fields.header的来源,是的,我知道header.twig可以直接访问该值,但是我正在尝试创建一个结构,其中低层和中层组件是“哑”和高级组件控制数据。

对于给定的情况,我是要以这种最佳方式进行工作,还是有另一种更清洁的方式不涉及混合嵌入和包含内容?

0 个答案:

没有答案