Twig 三元运算符,简称 if-then-else

Twig 支持三元运算符(简写 if-else)吗?

我需要一些条件逻辑,比如:

{%if ability.id in company_abilities %}
<tr class="selected">
{%else%}
<tr>
{%endif%}

但是在 Twig 中使用速记。

221199 次浏览
\{\{ (ability.id in company_abilities) ? 'selected' : '' }}

三元操作符在“ 其他营办商”下记录

您可以从 Twig 1.12.0开始使用速记语法

\{\{ foo ?: 'no' }} is the same as \{\{ foo ? foo : 'no' }}
\{\{ foo ? 'yes' }} is the same as \{\{ foo ? 'yes' : '' }}

Twig 1.12.0中增加了对扩展的三元操作符的支持。

  1. 如果 foo回应 yes else 回应 no:

    \{\{ foo ? 'yes' : 'no' }}
    
  2. If foo echo it, else echo no:

    \{\{ foo ?: 'no' }}
    

    或者

    \{\{ foo ? foo : 'no' }}
    
  3. If foo echo yes else echo nothing:

    \{\{ foo ? 'yes' }}
    

    或者

    \{\{ foo ? 'yes' : '' }}
    
  4. Returns the value of foo if it is defined and not null, no otherwise:

    \{\{ foo ?? 'no' }}
    
  5. Returns the value of foo if it is defined (empty values also count), no otherwise:

    \{\{ foo|default('no') }}
    

例如,如果价格存在于数据库中,那么 print (Price is $$$) else print (Not Vacable)和 ~用于 Twig中的连接。

\{\{ Price is defined ? 'Price is '~Price : 'Not Available' }}

我只是使用 a作为一个通用的变量名,你也可以像这样使用永无止境的 if else:

\{\{ a == 1 ? 'first' : a == 2 ? 'second' : 'third' }}