在我的 Symfony2/twig webapp 中,我有一个 twig 模板,它只包含一个<div id="#container">...</div>
,没有<html></html>
包装。我将它用于 ajax 调用,我将它嵌入到我的页面布局中。我们称之为布局ajax_template.html.twig
。
<h1>Headline</h1>
{% block my_content %}
<p>My content</p>
{% endblock %}
现在我有另一个模板,它将扩展ajax_template.html.twig
. 但是这个页面不是通过ajax调用的,而是直接调用的。所以它也应该扩展 my base_layout.html.twig
,其中包括所有<html></html>
包装。应该是这样的:
# won't work because no multiple inheritance supported
{% extends 'MyBundle::base_layout.html.twig' %}
{% extends 'MyBundle:MyController:ajax_template.html.twig' %}
{% block my_content %}
<p>My modified content</p>
{% endblock %}
已经尝试了几种方法,例如include()
或use()
在我的树枝模板中。我还检查了当前路径是否是 ajax 调用:
{% if '/ajax/' in path(app.request.attributes.get('_route')) %}
{% extends 'MyBundle::base_layout.html.twig' %}
{% endif %}
但我的方法都不起作用。你有什么想法?