Twig:使用 extends 在页脚中添加内容使扩展代码出现两次

Twig: add content in the footer using extends makes extended code appear twice

据我了解,通过使用 twig 的 extends 方法,应该可以将代码添加到页脚 来自在模板中 anywhere else.

就像我们呈现主页并在模板 edit_form.html.twig 中有一个 <form> 并且我们知道我们需要特殊的 javascript 在这里(仅用于该表单)所以我们决定在页面末尾的页脚中添加此 javascript 标记,如下所示:

edit_form.html.twig

{% block edit_form %}
<form id="editForm">
    <!-- form html here -->
</form>
{% endblock edit_form %}

{{ include('edit_form_js.html.twig') }}

我们希望 javascript 位于页面末尾:

edit_form_js.html.twig

{% extends "footer.html.twig" %}
{% block js %}
    {{ parent() }}
    <script>
        // special js code only needed for the <form>
    </script>
{% endblock js %}

footer.html.twig

{% block js %}
    <script src="jquery.js"></script>
{% endblock js %}

但是这样做不会 末尾添加自定义 表单 javascript jquery 包含 但导致 block js 在页面上 两次 (在表单之后和页脚中)


我对树枝的理解extends错了吗?


问:有什么方法可以从任意位置向页脚添加代码吗?

包含的模板不知道从中调用它的模板的任何信息。对于包含的模板,不能从该模板更改块。您可能想看看 deferred extension