我正在使用symfony 3 + twig作为模板引擎。
我需要根据字符串创建变量,例如我想要
{% set varName='Document' %}
然后像
{% for createVariable(varName) in entities %}
为什么会这样?
因为我有一个包含另一个模板B的模板A.
在模板AI集{% fileToInclude='...' %}
中,模板BI包括fileToInclude
需要特定变量才能工作,但fileToInclude
可以是另一个需要另一个特定变量的模板,所以我需要创建一个变量从我设置的字符串开始,如果我包含例如“document.html.twig”,那么我将设置varName ='Document',如果我包含'news.html.twig',我将设置varName ='新闻......
怎么做?
编辑:
文件A:
{% set includeFile='filec.html.twig %} //HERE I can set filed or filee
{% set varName='document' %}
{% include 'fileb.html.twig' %}
文件B:
{% for entity in entities %} // HERE entity should be named document or news or what I need
{% include includeFile %}
{% endfor %}
文件C:
{{ document.title }}
文件D:
{{ news.text }}
答案 0 :(得分:0)
不是很清楚你想做什么,但你做不了类似的事情:
{ include('document.html.twig', {varName: 'Document'}) }}
或更通用:
{ include(data.template, {varName: data.entity}) }}
答案 1 :(得分:0)
你想做的事很奇怪。 但是如果你想使用动态变量名,请使用:
attribute(_context, varName) {# <- is your variable #}