Is er een Twig-verkorte syntaxis voor het uitvoeren van voorwaardelijke tekst

Is er een kortere syntaxis in Twig om een ​​voorwaardelijke tekstreeks uit te voeren?

<h1>{% if not info.id %}create{% else %}edit{% endif %}</h1>

Traditionele php is nog eenvoudiger dan dit:

<h1><?php info['id']? 'create' : 'edit' ?></h1>

Antwoord 1, autoriteit 100%

Dit zou moeten werken:

{{ not info.id ? 'create' : 'edit' }}

Dit wordt ook wel de ternaire operator genoemd. Het is een beetje verborgen in de documentatie: twig docs: operators

Uit hun documentatie is de basisstructuur:

{{ foo ? 'yes' : 'no' }}

Antwoord 2, autoriteit 23%

Als u wilt vergelijken, is de waarde gelijk aan iets wat u kunt doen:

{{  user.role == 'admin' ? 'is-admin' : 'not-admin' }}

Je kunt de Elvis-operator in het takje gebruiken:

{{  user ? 'is-user' }} 
{{  user ?: 'not-user' }} // note that it evaluates to the left operand if true ( returns the user ) and right if not

Antwoord 3, autoriteit 3%

De null-coalescing-operatorwerkt ook , zoals:

{% set avatar = blog.avatar ?? 'https://example.dev/brand/avatar.jpg' %}

Other episodes