【问题标题】:Twig ternary operator, Shorthand if-then-elseTwig 三元运算符,简写 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 中使用简写。

【问题讨论】:

    标签: php twig conditional-operator


    【解决方案1】:
    {{ (ability.id in company_abilities) ? 'selected' : '' }}
    

    三元运算符记录在“other operators”下

    【讨论】:

    • 这在将按钮或项目标记为当前页面的活动等情况下非常有用。
    • 如果为真,您将如何处理打印能力.id? (代替“选定”)。
    • @gdaniel {{ (ability.id in company_abilities) ? ability.id : '' }}
    • 谢谢。在内联条件中打印树枝变量时遇到问题。我会试试看。
    • 我想知道这是否应该能够内联工作以添加像css类这样的属性值?它似乎对我不起作用:&lt;div class="my-section {{ model.event.eventDate ? 'half' : '' }}"&gt; --想根据条件在此处添加一个 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 中添加了对扩展三元运算符的支持。

      1. 如果foo回显yes否则回显no

        {{ foo ? 'yes' : 'no' }}
        
      2. 如果foo回显它,否则回显no

        {{ foo ?: 'no' }}
        

        {{ foo ? foo : 'no' }}
        
      3. 如果foo 回显yes 否则不回显:

        {{ foo ? 'yes' }}
        

        {{ foo ? 'yes' : '' }}
        
      4. 如果foo已定义非空,则返回no的值,否则返回no

        {{ foo ?? 'no' }}
        
      5. 如果是已定义值也算),则返回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' }}
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-08-03
          • 2010-12-12
          • 2021-01-03
          • 1970-01-01
          • 1970-01-01
          • 2014-06-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多