Twig 中的三元串联
Ternary concatenation in Twig
如果某些条件为真,在将一个字符串连接到另一个字符串时,是否可以在 Twig 中使用三元运算符?
这对我有用:
{% set a = 'initial' %}
{% if foo == bar %}
{% set a = a ~ ' concatenate' %}
{% endif %}
<p>{{ a }}</p>
但是当我尝试像这样简化它时,它会抛出一个错误:
{% set a = 'initial' ~ (foo == bar) ? ' concatenate' : '' %}
<p>{{ a }}</p>
我是不是做错了什么,或者这种简化在 Twig 中根本不可能实现?
由于 precedence 的顺序,您需要添加括号,
{% set a = 'initial' ~ ((foo == bar) ? ' concatenate' : '') %}
如果第二部分是空的,你甚至可以省略它,例如
{% set b = 'initial' ~ ((foo == foo) ? ' concatenate') %}
如果某些条件为真,在将一个字符串连接到另一个字符串时,是否可以在 Twig 中使用三元运算符?
这对我有用:
{% set a = 'initial' %}
{% if foo == bar %}
{% set a = a ~ ' concatenate' %}
{% endif %}
<p>{{ a }}</p>
但是当我尝试像这样简化它时,它会抛出一个错误:
{% set a = 'initial' ~ (foo == bar) ? ' concatenate' : '' %}
<p>{{ a }}</p>
我是不是做错了什么,或者这种简化在 Twig 中根本不可能实现?
由于 precedence 的顺序,您需要添加括号,{% set a = 'initial' ~ ((foo == bar) ? ' concatenate' : '') %}
如果第二部分是空的,你甚至可以省略它,例如
{% set b = 'initial' ~ ((foo == foo) ? ' concatenate') %}