是否可以将变量传递到包含的树枝模板中,其中模板名称本身就是一个变量?
{% include('MyMainBundle:MyEntity:' ~ entity.templateName) %}
有效,但是当我尝试将变量也传递到此模板时,twig 会引发语法错误。
{% include('MyMainBundle:MyEntity:' ~ entity.templateName, {'name' : myName} ) %}
我明白我做错了什么。我结合了两个不同版本的 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'} %}
对于作为变量的模板名称,我必须使用以下格式:
{% 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} }}
不工作。