我想覆盖/扩展包含的树枝文件中layout.twig中的一个块。
我该如何实现?
这样做的原因是我将一些元素外包到了不同的树枝文件中,以便能够一次又一次地使用它们。 这些树枝文件应在layout.twig中展开。
我尝试了不同的解决方案:
embed标签仅覆盖包含文件中的块。
use标签不允许在layout.twig中扩展父块。
[https://github.com/rybakit/twig-deferred-extension]也没有达到预期的效果。
layout.twig
<div style="color:red;">
{% block content %}
<h1>content: layout</h1>
{% endblock %}
</div>
<div style="color:blue;">
{% block morecontent %}
<h1>morecontent: layout</h1>
{% endblock %}
</div>
content.twig
{% extends "layout.twig" %}
{% block content %}
<h1>content: content</h1>
{% include "include.twig" %}
{% include "include2.twig" %}
{% endblock %}
include.twig
<h1>content: include</h1>
{% block morecontent %}
<h1>morecontent: include</h1>
{% endblock %}
include2.twig
<h1>content: include2</h1>
{% block morecontent %}
<h1>morecontent: include2</h1>
{% endblock %}
这样,所包含文件的“ morecontent”将直接放在内容之后。
<div style="color:red;">
<h1>content: content</h1>
<h1>content: include</h1>
<h1>morecontent: include</h1>
<h1>content: include2</h1>
<h1>morecontent: include2</h1>
</div>
<div style="color:blue;">
<h1>morecontent: layout</h1>
</div>
但是我希望它们位于layout.twig的morecontent块中
<div style="color:red;">
<h1>content: content</h1>
<h1>content: include</h1>
<h1>content: include2</h1>
</div>
<div style="color:blue;">
<h1>morecontent: layout</h1>
<h1>morecontent: include</h1>
<h1>morecontent: include2</h1>
</div>