2016-06-23 169 views
-1

我使用symfony 3 +樹枝作爲模板引擎。Twig動態創建字符串變量

我需要創建一個基於字符串變量,比如我想

{% set varName='Document' %} 

,然後像

{% for createVariable(varName) in entities %} 

爲什麼呢?

因爲我有一個模板,其中包括另一個模板B. 在模板AI設定{% fileToInclude='...' %},在模板BI包括fileToInclude需要一個特定的變量的工作,但fileToInclude可以是需要另一個特定變量的另一個模板,所以我需要從我設置的字符串創建一個變量,所以如果我包含例如「document.html.twig」,那麼我會設置varName ='Document',如果我包含'news.html.twig',我'將設置varName ='新聞'...

如何做到這一點?

編輯:

文件:

{% set includeFile='filec.html.twig %} //HERE I can set filed or filee 
{% set varName='document' %} 

{% include 'fileb.html.twig' %} 

FILE B:

{% for entity in entities %} // HERE entity should be named document or news or what I need 

{% include includeFile %} 

{% endfor %} 

FILE C:

{{ document.title }} 

FILE d:

{{ news.text }} 
+1

你能澄清你的問題嗎?是否要創建動態變量?如果是這樣,我沒有看到你的代碼示例。 –

+0

@AlvinBunk編輯問題 – Francesco

+0

我直到不要打開你的問題。特別是'{%for createVariable(varName)in entities%}' – Alsatian

回答

0

不是很清楚你想要做什麼,但你不能這樣做:

{ include('document.html.twig', {varName: 'Document'}) }} 

或多個通用:

{ include(data.template, {varName: data.entity}) }} 
+2

''data.template''不會與周圍的引號一起工作.. – DarkBee

+0

編輯問題 – Francesco

+0

編輯,謝謝@DarkBee – Strnm

0

你想要做什麼是很奇怪的。 但是,如果你想使用動態變量名稱:

attribute(_context, varName) {# <- is your variable #}