if

La sentencia if en Twig es comparable con las sentencias if de PHP.

En su forma más simple, puedes usarla para probar si una expresión se evalúa como true:

{% if online == false %}
    <p>Nuestro sitio web está en modo mantenimiento. Por favor, vuelva más tarde.</p>
{% endif %}

También puedes probar si una secuencia o un mapeo no está vacío:

{% if users %}
    <ul>
        {% for user in users %}
            <li>{{ user.username|e }}</li>
        {% endfor %}
    </ul>
{% endif %}

Note

Si quieres probar si la variable está definida, usa if users is defined en su lugar.

También puedes usar not para comprobar valores que se evalúan como false:

{% if not user.subscribed %}
    <p>No estás suscrito a nuestra lista de correo.</p>
{% endif %}

Para múltiples condiciones, se pueden usar and y or:

{% if temperature > 18 and temperature < 27 %}
    <p>Es un buen día para un paseo por el parque.</p>
{% endif %}

Para múltiples ramas, se pueden usar elseif y else como en PHP. También puedes usar expressions más complejas allí:

{% if product.stock > 10 %}
   Disponible
{% elseif product.stock > 0 %}
   ¡Solo quedan {{ product.stock }}!
{% else %}
   ¡Agotado!
{% endif %}

Note

Las reglas para determinar si una expresión es true o false son las mismas que en PHP; aquí están las reglas para casos límite:

Valor Evaluación booleana
cadena vacía false
cero numérico false
NAN (No es un Número) true
INF (Infinito) true
cadena solo con espacios en blanco true
cadena "0" o '0' false
secuencia vacía false
mapeo vacío false
null false
secuencia no vacía true
mapeo no vacío true
objeto true