我正在渲染Twig
模板,如下所示:
$this->render('base.html.twig');
此Twig
模板的内容(简化)如下所示:
{% block headers %}
...
{% endblock %}
{% block pagecontent %}
...
{# I want to include another template (A) here #}
{# I want to include another template (B) here #}
{% endblock %}
{% block footers %}
...
{% endblock %}
我有另一个Twig
模板,我没有渲染,但我想要包含在上面的模板中(我放置了Twig
评论)。内容如下:
{% extends '::base' %}
{% block headers %}
{{ parent() }}
{% endblock %}
{% block pagecontent %}
{{ parent() }}
...
{% endblock %}
我想最终在Twig
内呈现多个base.html.twig
模板。
我试图做的是否可以实现,如果是,我该如何实现呢?
答案 0 :(得分:3)
您只需渲染子模板(扩展base.html.twig
的模板)。
控制器更改:
$this->render('child_template_extending_base.html.twig');
将child_template_extending_base
替换为您的真实模板名称。
您还可以使用以下代码embed
模板中的其他控制器视图:
{{ render(controller(
'AppBundle:Article:recentArticles',
{ 'max': 3 }
)) }}
在此处详细了解此功能:http://symfony.com/doc/current/book/templating.html#embedding-controllers
答案 1 :(得分:0)
base.html.twig
jQuery.sap.log.*
你的控制器:
{% block headers %}
...
{% endblock %}
{% block pagecontent %}
...
{# I want to include another template (A) here #}
{# I want to include another template (B) here #}
{% endblock %}
{% block footers %}
...
{% endblock %}
通常,$ this->渲染(' view.html.twig');只接受一根树枝。 如果您想拥有多个模板,可以像这样构建:
view.html.twig
$this->render('base.html.twig');
另一个可能的解决方案是: 你可以把一个街区分成几个街区。