176

Twigは3項(省略形のif-else)演算子をサポートしていますか?

次のような条件付きロジックが必要です。

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

しかし、Twigでは速記を使用しています。

4

5 に答える 5

338
{{ (ability.id in company_abilities) ? 'selected' : '' }}

三項演算子は「他の演算子」の下に文書化されています

于 2012-08-05T21:51:14.693 に答える
131

Twig1.12.0以降の省略構文を使用できます

{{ foo ?: 'no' }} is the same as {{ foo ? foo : 'no' }}
{{ foo ? 'yes' }} is the same as {{ foo ? 'yes' : '' }}
于 2014-07-21T07:32:28.877 に答える
103

拡張三項演算子のサポートは、Twig1.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. nullではなく定義されfooいる場合はの値を返します。それ以外の場合は次の値を返します。no

    {{ foo ?? 'no' }}
    
  5. 定義されfooている場合はの値を返します(空の値もカウントされます)。それ以外の場合は次の値を返します。no

    {{ foo|default('no') }}
    
于 2016-11-15T09:11:40.307 に答える
2

たとえば、データベースから価格が存在する場合は、印刷(価格は$$$)、それ以外の場合は印刷(利用不可)、および~の連結の場合Twig

{{ Price is defined ? 'Price is '~Price : 'Not Available' }}
于 2021-03-31T02:39:40.487 に答える
0

a一般的な変数名として使用しました。次のような場合は、無限に使用することもできます。

{{ a == 1 ? 'first' : a == 2 ? 'second' : 'third' }}
于 2021-08-10T09:48:10.480 に答える