2

我很接近,但似乎没有任何效果:

{% set a %}abc{% endset %}

{% set b %}123{% endset %}

{{ "test_abc123_xyz"|replace({ '{{ a }}{{ b }}': '' }) }}

我想做什么应该很明显,因为我认为上面唯一错误的部分是这一点:

'{{ a }}{{ b }}'

...但我做错了(我想一起使用 a 和 b 的值并替换它)。

如果工作,上述结果将是:

test__xyz
4

1 回答 1

6

当你使用'{{ a }}{{ b }}'时,它只是一个简单的 twig 字符串:

{{ '{{ a }}{{ b }}' }}

只会输出:

{{ a }}{{ b }}

然后,如果你想在 twig 中使用表达式作为键,你需要把它们放在括号中:

{% 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): '' }) }}

~是 twig 中的连接运算符

于 2013-08-25T06:40:15.197 回答