我很接近,但似乎没有任何效果:
{% set a %}abc{% endset %}
{% set b %}123{% endset %}
{{ "test_abc123_xyz"|replace({ '{{ a }}{{ b }}': '' }) }}
我应该明白我正在尝试做什么,因为我认为上面唯一的错误是这一点:
'{{ a }}{{ b }}'
...但我无法做到正确(我想一起使用a和b的值并替换它)。
如果工作,上述结果将是:
test__xyz
答案 0 :(得分:6)
当你使用'{{ a }}{{ b }}'
时,它只不过是一个简单的字符串:
{{ '{{ a }}{{ b }}' }}
只会输出:
{{ a }}{{ b }}
然后,如果你想在树枝中使用expression as keys,你需要将它们放在括号中:
{% set name = 'Adrien' %}
{% set hash = {(name): 'hello', name: 'hi'} %}
{% for key, value in hash %}
{{ key }} => {{ value }}
{% endfor %}
会输出:
Adrien => hello
name => hi
所以你修复的解决方案是:
{% set a %}abc{% endset %}
{% set b %}123{% endset %}
{{ "test_abc123_xyz"|replace({ (a ~ b): '' }) }}
~
是树枝中的concatenation operator。