Twig是否支持三元运算符(简写的if-else)?
我需要一些条件逻辑,如:
{%if ability.id in company_abilities %}
<tr class="selected">
{%else%}
<tr>
{%endif%}
但在Twig中使用缩写。
Twig是否支持三元运算符(简写的if-else)?
我需要一些条件逻辑,如:
{%if ability.id in company_abilities %}
<tr class="selected">
{%else%}
<tr>
{%endif%}
但在Twig中使用缩写。
从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 添加了扩展三元运算符的支持。
如果 foo
为真则输出 yes
,否则输出 no
:
{{ foo ? 'yes' : 'no' }}
如果foo
存在,则输出它,否则输出no
:
{{ foo ?: 'no' }}
或{{ foo ? foo : 'no' }}
如果 foo
为真则输出 yes
,否则不输出:
{{ foo ? 'yes' }}
或者{{ foo ? 'yes' : '' }}
如果foo
已被定义且不为null,则返回其值,否则返回no
:
{{ foo ?? 'no' }}
返回变量foo
的值,如果它已经定义(包括空值),则返回该值;否则返回no
:
如果变量foo
已经定义(包括空值),则返回其值,否则返回no
:
{{ foo|default('no') }}
Twig
中使用~
进行拼接。{{ Price is defined ? 'Price is '~Price : 'Not Available' }}
Price
等于 0,它将被视为假并显示“不可用”,而不是0,对吗? - CheddarLizzard我只是将a
作为通用变量名。你也可以像这样使用无限的if else:
{{ a == 1 ? 'first' : a == 2 ? 'second' : 'third' }}
{{ (ability.id 在 company_abilities 中) ? ability.id : '' }}
- Ben Swinburne<div class="my-section {{ model.event.eventDate ? 'half' : '' }}">
-- 我想根据条件在这里添加一个CSS类。 - Jordanmodel.event.eventDate
评估为 true,它将添加该类。从 Twig 的角度来看,它不知道任何关于类的信息,只是打印字符串,无论是类、ID、原始 HTML 还是其他所需的内容。更重要的是,它不知道关于“打印”的事情。这是由于{{ }}
。它只是一个表达式,像任何其他表达式一样进行评估,例如求和、过滤器、方法调用等。 - Xavi Montero