Twig ternary operatörü, Shorthand if-then-else


150

Twig, üçlü (shorthand if-else) operatörünü destekliyor mu?

Bazı koşullu mantığa ihtiyacım var:

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

ancak Twig'de steno kullanarak.

Yanıtlar:


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

Üçlü operatör ' diğer operatörler ' altında belgelenmiştir


1
Bu, bir düğmeyi veya öğeyi geçerli sayfa için etkin olarak işaretlemek gibi durumlarda çok yararlıdır.
Vahid Amiri

DOĞRU ise, yetenek.id'yi nasıl yazdırırsınız? ("seçilen" yerine).
gdaniel

1
@gdaniel{{ (ability.id in company_abilities) ? ability.id : '' }}
Ben Swinburne

Teşekkürler. Satır içi koşulların içindeyken dal değişkenlerini yazdırırken sorunlar yaşıyorum. Bunu bir deneyeceğim.
gdaniel

Bunun bir css sınıfı gibi bir öznitelik değeri eklemek için satır içi çalışıp çalışamayacağını merak ediyorum. Benim için işe yaramıyor gibi görünüyor: <div class="my-section {{ model.event.eventDate ? 'half' : '' }}">- koşula bağlı olarak buraya bir css sınıfı eklemek istemek.
Ürdün

116

Twig 1.12.0'dan itibaren steno sözdizimini kullanabilirsiniz.

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

85

Genişletilmiş üçlü operatör için destek, Twig 1.12.0'da eklendi .

  1. Eğer fooyankı yesbaşka yankı no:

    {{ foo ? 'yes' : 'no' }}
    
  2. Eğer fooyankı o başka yankı no:

    {{ foo ?: 'no' }}
    

    veya

    {{ foo ? foo : 'no' }}
    
  3. Eğer fooyankı yesbaşka hiçbir şeyi yansıtmazsa:

    {{ foo ? 'yes' }}
    

    veya

    {{ foo ? 'yes' : '' }}
    
  4. Değerini döndürür fooo takdirde tanımlanmış ve değil null adlı , noaksi:

    {{ foo ?? 'no' }}
    
  5. Değerini verir foobu ise tanımlanan ( boş değerler de önemlidir), noaksi takdirde:

    {{ foo|default('no') }}
    
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.