有没有办法从包含或父模板渲染块?
我有3个模板
main.html.twig:
{% include 'navbar.html.twig' %}
<div id="main_content">
{% block application_content %}
{% endblock application_content %}
</div>
{% block application_footer %}
footer
{% endblock application_footer %}
navbar.html.twig:
<p>bla bla</p>
{% block navbar_profile_photo %}
<img src="{{ image }}">
{% endblock navbar_profile_photo %}
content.html.twig:
{% extends "main.html.twig" %}
{% block application_content %}
lorem ipsum
{% block foo %}
dolor sit amet
{% endblock foo %}
{% endblock application_content %}
我希望能够调用类似的内容
$ twig-&gt; loadTemplate(&#39; content.html.twig&#39;) - &gt; renderBlock(&#39; navbar_profile_photo&#39;,数组(&#39;图像&#39; =&gt; &#39; bar.jpg&#39;))
但我只能从&#39; content.html.twig&#39;
中获取$ twig-&GT; loadTemplate(&#39; content.html.twig&#39;) - &GT; getBlockNames();
返回
[&#39; application_content&#39;,&#39; foo&#39;]
我可以添加到content.html.twig
{%use&#39; navbar.html.twig&#39; %}
但在我的情况下,我必须在许多模板中使用许多不同的使用语句
有没有办法让所有包含和扩展和阻止的最终模板?
答案 0 :(得分:0)
在content.html.twig文件中,您必须添加:
{% extends "EverlutionApplicationBundle::main.html.twig" %}
{% block navbar_profile_photo %}
{{ parent() }}
{% endblock navbar_profile_photo %}
.....