Aprende una forma breve y sencilla de verificar si una variable está definida y no vacía con un filtro de twig.

La verificación del contenido de las variables en Twig puede ser bastante difícil sin la extensión de volcado. Incluso con eso, a veces será perezoso y asumirá el contenido de algunas variables enviadas desde PHP a Twig, como de costumbre, una variable puede estar vacía y de acuerdo con ella, es posible que desee hacer algo diferente como imprimir otro texto, etc. Cualquiera El desarrollador está acostumbrado a la prueba está vacía:

{# o {% set variable = null %} tambien #}
{% set variable = "" %}

{% if variable is empty %}
    La variable está vacía.
{% else %}
    La variable no está vacía.
{% endif %}

Si el valor de la variable es una cadena vacía o nula, el texto impreso será "La variable está vacía". Además, es posible que desee verificar si una propiedad dentro de una matriz está vacía:

{# o {% set variable = null %} tambien #}
{% set variable = {
    "name": "Carlos",
    "lastName": "Delgado"
} %}

{% if variable.name is empty %}
    La variable está vacía.
{% else %}
    La variable no está vacía.
{% endif %}

En este caso, la variable existe y la clave de nombre está definida, por lo que imprimirá "La variable no está vacía". Sin embargo, ¿qué pasa si la variable desde la que desea verificar si existe la clave no existe? Es posible que deba extender su if con:

{% if variable is defined %}
    {% if variable.name is empty %}
        La variable está vacía.
    {% else %}
       La variable no está vacía.
    {% endif %}
{% else %}
    La variable no está definida.
{% endif %}

En este caso, como nuestra variable no existe, imprimirá "La variable no está definida o no está vacía". Un poco desordenado y largo, ¿no? Incluso ignorando que no desea mostrar el mensaje a su usuario de que la variable no está definida, sino solo "La variable está vacía". ¿Y si te dijera que hay una manera más fácil de hacerlo? ¡Usando el filtro predeterminado!

Usando el filtro predeterminado

Con el filtro predeterminado, puede verificar fácilmente si una variable existe y no está vacía simultáneamente:

{% if variable.name|default %}
    La variable no está vacía
{% else %}
    La variable está vacía.
{% endif %}

En este caso el filtro verifica primero si la variable "variable" existe, si existe, continúa con la clave en este caso nombre, si existe y no está vacío, devuelve verdadero para que se imprima el primer mensaje. Por el otro lado, como se mencionó, si la clave existe pero su valor está vacío, la condición devolverá falso:

{# Or {% set variable = null %} as well #}
{% set variable = {
    "name": null,
    "lastName": "Delgado"
} %}

{% if variable.name|default %}
    La variable no está vacía.
{% else %}
    La variable está vacía.
{% endif %}

Que en este caso imprimirá "La variable está vacía". Para obtener más información sobre el filtro predeterminado , no olvide leer la documentación oficial del filtro en la página web de Twig.

Que te diviertas ❤️!


Ingeniero de Software Senior en EPAM Anywhere. Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores