24

是否可以将变量传递到包含的树枝模板中,其中模板名称本身就是一个变量?

{% include('MyMainBundle:MyEntity:' ~ entity.templateName) %}

有效,但是当我尝试将变量也传递到此模板时,twig 会引发语法错误。

{% include('MyMainBundle:MyEntity:' ~ entity.templateName, {'name' : myName} ) %}
4

2 回答 2

50

我明白我做错了什么。我结合了两个不同版本的 include,一个使用 {{,另一个使用 {%,因为 symfony 和 twig 文档显示了包含模板的不同方式。这就像从我的初始代码中删除括号并在定义参数之前插入一个 with 一样简单。

您可以根据http://symfony.com/doc/current/book/templating.html#include-other-templates包含这样的模板

{{ include('AcmeArticleBundle:Article:articleDetails.html.twig', {'article': article}) }}

或者像这样每http://twig.sensiolabs.org/doc/tags/include.html

{% include 'template.html' with {'foo': 'bar'} %}
于 2013-04-12T23:25:30.017 回答
7

对于作为变量的模板名称,我必须使用以下格式:

{% include 'AcmeCalendarBundle:Default:cal_event_' ~ day.item.type ~ '.html.twig' with {'item': day.item} %}

使用

{{ include 'AcmeCalendarBundle:Default:cal_event_' ~ day.item.type ~ '.html.twig', {'item': day.item} }}

不工作。

于 2014-11-17T10:28:18.110 回答