有没有办法在自定义扩展模板中的扩展块中调用parent()函数?
在我的base.html.twig中,我有块footer_javascript
,在我的自定义扩展中,我想在这个块中添加一些JS,但我需要确保原始块footer_javascript
不会被扩展覆盖。我试过这个:
custom_extension.html.twig:
{# some html/twig code, not really important #}
{% block footer_javascript %}
{{ parent() }}
{# some javascript for this custom twig extension #}
{% endblock footer_javascript %}
但当然,我得到
致电"父母"在一个不扩展的模板上"使用"另一个 模板被禁止
base.html.twig - 具有块结构的基本模板:
{# base html/twig structure, not really important %}
{# block which will be extended/overwriten in templates which extends this base.html.twig #}
{% block footer_javascript %}
{% endblock footer_javascript %}
extended.html.twig - 扩展base.html.twig的模板;在此模板中,我使用自定义树枝扩展名:
{% extends "::base.html.twig" %}
{# some html/twig ... #}
{{ custom_extension(entity) }}
{% block footer_javascript %}
{{ parent() }}
{# javascript used for extend.html.twig #}
{% endblock footer_javascript %}
有没有办法在自定义扩展模板中扩展基础footer_javascript
?
答案 0 :(得分:3)
要使用parent()
,您必须扩展模板。
您的custom_extension.html.twig
必须base.html.twig
延长extended.html.twig
。
修改强>
如果您使用<body>
的2个模板,则不必使用{{ parent() }}
,而是将您的js放入一个将包含在块中的树枝中。