Object 使用变量设置细枝对象属性名称

Object 使用变量设置细枝对象属性名称,object,properties,twig,Object,Properties,Twig,我需要在Twig中动态设置对象属性名称: {% set featureId = feature.id %} {% set gridEnabled = gridEnabled|merge({featureId: true}) %} 但这会将“featureId”设置为gridEnabled的属性。有没有办法告诉TwigfeatureId是一个变量?我很惊讶它将其解释为一个没有引号的字符串 后续问题:这是完整的集合——我可以进一步简化为“feature.id”。这些线路可以合并吗 {% set g

我需要在Twig中动态设置对象属性名称:

{% set featureId = feature.id %}
{% set gridEnabled = gridEnabled|merge({featureId: true}) %}
但这会将
“featureId”
设置为
gridEnabled
的属性。有没有办法告诉Twig
featureId
是一个变量?我很惊讶它将其解释为一个没有引号的字符串

后续问题:这是完整的集合——我可以进一步简化为“feature.id”。这些线路可以合并吗

{% set gridEnabled = grid.enabled %}
{% set gridEnabled = gridEnabled|merge({(feature.id): true}) %}
{% set grid = grid|merge({'enabled':gridEnabled}) %}
其实很容易,

{% set gridEnabled = gridEnabled|merge({(featureId): true}) %}

(编辑)后续行动

{% set grid = grid | merge({'enabled' : (grid.enabled | merge({(featureId):1,}))}) %}

这就是我上面提到的。它不起作用---将属性名设置为“featureId”--哦,等等,你在parens中有它--就这样?你知道这样做的原因吗?因此有两个额外的括号,这迫使细枝首先插值变量。我添加了一个后续,这也可以减少吗?谢谢--这有助于我理解细枝首先需要处理什么