Twig 三元运算符,简写 if-then-else
Posted
技术标签:
【中文标题】Twig 三元运算符,简写 if-then-else【英文标题】:Twig ternary operator, Shorthand if-then-else 【发布时间】:2012-08-02 22:52:03 【问题描述】:Twig 是否支持三元(if-else 简写)运算符?
我需要一些条件逻辑,例如:
%if ability.id in company_abilities %
<tr class="selected">
%else%
<tr>
%endif%
但在 Twig 中使用简写。
【问题讨论】:
【参考方案1】: (ability.id in company_abilities) ? 'selected' : ''
三元运算符记录在“other operators”下
【讨论】:
这在将按钮或项目标记为当前页面的活动等情况下非常有用。 如果为真,您将如何处理打印能力.id? (代替“选定”)。 @gdaniel (ability.id in company_abilities) ? ability.id : ''
谢谢。在内联条件中打印树枝变量时遇到问题。我会试试看。
我想知道这是否应该能够内联工作以添加像css类这样的属性值?它似乎对我不起作用:<div class="my-section model.event.eventDate ? 'half' : '' ">
--想根据条件在此处添加一个 css 类。【参考方案2】:
您可以使用 Twig 1.12.0 的简写语法
foo ?: 'no' is the same as foo ? foo : 'no'
foo ? 'yes' is the same as foo ? 'yes' : ''
【讨论】:
【参考方案3】:Twig 1.12.0 中添加了对扩展三元运算符的支持。
如果foo
回显yes
否则回显no
:
foo ? 'yes' : 'no'
如果foo
回显它,否则回显no
:
foo ?: 'no'
或
foo ? foo : 'no'
如果foo
回显yes
否则不回显:
foo ? 'yes'
或
foo ? 'yes' : ''
如果foo
是已定义且非空,则返回no
的值,否则返回no
:
foo ?? 'no'
如果是已定义(空值也算),则返回foo
的值,否则返回no
:
foo|default('no')
【讨论】:
【参考方案4】:例如,如果数据库中存在价格,则打印(价格为 $$$),否则打印(不可用)和~
以在Twig
中连接。
Price is defined ? 'Price is '~Price : 'Not Available'
【讨论】:
如果Price
等于 0,它将评估为 false 并显示“不可用”而不是 0,不是吗?
我已更改为已定义【参考方案5】:
我只是使用a
作为通用变量名。你也可以像这样使用无穷无尽的:
a == 1 ? 'first' : a == 2 ? 'second' : 'third'
【讨论】:
以上是关于Twig 三元运算符,简写 if-then-else的主要内容,如果未能解决你的问题,请参考以下文章