是否可以将变量传递到包含的树枝模板中,模板名称本身就是变量?
{% include('MyMainBundle:MyEntity:' ~ entity.templateName) %}
有效,但当我尝试将变量传递到此模板时,twig会引发语法错误。
{% include('MyMainBundle:MyEntity:' ~ entity.templateName, {'name' : myName} ) %}
答案 0 :(得分:40)
我明白我做错了什么。我结合了两个不同版本的include,一个使用{{和另一个使用{%,因为symfony和twig文档显示了包含模板的不同方式。这就像从我的初始代码中删除括号并在定义参数之前插入with一样简单。
您可以按http://symfony.com/doc/current/book/templating.html#including-other-templates
添加这样的模板{{ include('AcmeArticleBundle:Article:articleDetails.html.twig', {'article': article}) }}
或者像http://twig.sensiolabs.org/doc/tags/include.html
这样{% include 'template.html' with {'foo': 'bar'} %}
答案 1 :(得分:5)
对于模板名称作为变量,我必须使用以下格式:
{% 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} }}
没用。