Использование переменных в качестве хеш-ключей в ветке (в качестве параметров в path() или |trans)

Можно ли динамически использовать транс-фильтр или функцию пути? С переменными в качестве параметров? исх1:

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

потому что: я не знаю, использует ли "объект" идентификатор или слаг для маршрутизации

ex2:

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

потому что: я не знаю, будет ли это "%user%" или "%article%" или что-то еще

Почему это работает нормально:

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

но это не так:

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

person jacobmaster    schedule 17.01.2012    source источник


Ответы (2)


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

печатает:

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

упаковка в круглые скобки решает вашу проблему.

person s10z    schedule 25.01.2012

Заключите хеш-ключи в круглые скобки (не фигурные скобки).

{{ path('object_edit', { (parameter_type) : parameter_value }) }}
person iambray    schedule 29.03.2013