Twig中的三元连接

问题描述 投票:1回答:1

如果某个条件为真,在将一个字符串连接到另一个字符串时是否可以在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中是不可能的?

twig ternary-operator string-concatenation
1个回答
4
投票

由于precedence的顺序,你需要添加括号, {% set a = 'initial' ~ ((foo == bar) ? ' concatenate' : '') %}


如果第二部分是空的,你甚至可以省略它,例如

{% set b = 'initial' ~ ((foo == foo) ? ' concatenate') %}

twigfiddle

© www.soinside.com 2019 - 2024. All rights reserved.