【发布时间】:2013-11-26 14:56:01
【问题描述】:
在我的 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调用的,而是直接调用的。所以它也应该扩展我的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 %}
但是我的方法都不起作用。你有什么想法吗?
【问题讨论】:
标签: ajax symfony twig template-inheritance