2012-01-17 56 views
14

是否可以动态使用trans filter或path function?以变量作为参数? EX1:使用变量作为树枝中的散列键(作为path()或| trans中的参数)

{{ path('object_edit', { parameter_type : parameter_value }) }} 

因为:如果 “对象” 使用ID或散热片实现路由我不知道

EX2:

{{message|trans({ parameter_type : parameter_value }, 'TranslationDomain') }} 

,因为:我不知道这是否会是 '%用户%' 或 '%文章%' 或别的东西

为什么这工作得很好:

{{ path('object_edit', { 'id' : parameter_value }) }} 

但这并不:

{{ set parameter_type = 'id' }} 
{{ path('object_edit', { parameter_type : parameter_value }) }} 

回答

46
{% set key = 'foobar' %} 
{% set hash = { (key) : 'hello world' } %} 
{% debug hash %} 

打印:

array(1) { ["foobar"]=> string(11) "hello world" } 

包装在括号解决您的问题。

+1

太棒了,谢谢! – ChocoDeveloper 2013-04-04 00:01:15

+0

不是非常清楚明显,谢谢你的提示。 应该被标记为接受答案。 – Soullivaneuh 2015-09-11 12:41:27

+0

非常感谢你! – 2016-09-01 10:07:34

12

用圆括号(不是大括号)括起散列键。

{{ path('object_edit', { (parameter_type) : parameter_value }) }}