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

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

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

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

ех2:

{{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 }) }}

Ответы

Ответ 1

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

печатает:

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

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

Ответ 2

Вставьте ключи хеша с скобками (не скобки).

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