php - validate - ¿Cómo comprobar si hay nulo en Twig?
twig if variable is not set (7)
Cómo establecer valores predeterminados en twig: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn''t exist") }}
O si no desea que se muestre cuando sea nulo:
{{ my_var | default("") }}
¿Qué construcción debo usar para verificar si un valor es NULL en una plantilla Twig?
Dependiendo de lo que necesitas exactamente:
is null
verifica si el valor esnull
:{% if var is null %} {# do something #} {% endif %}
is defined
verifica si la variable está definida:{% if var is not defined %} {# do something #} {% endif %}
Además, la prueba is sameas
, que hace una comparación estricta de tipo de dos valores, podría ser interesante para verificar valores que no sean null
(como false
):
{% if var is sameas(false) %}
{# do something %}
{% endif %}
No creo que puedas. Esto se debe a que si una variable no está definida (no está establecida) en la plantilla de ramita, se ve como NULL
o none
(en términos de ramita). Estoy bastante seguro de que esto es para evitar que se produzcan errores de acceso incorrectos en la plantilla.
Debido a la falta de una "identidad" en Twig ( ===
) esto es lo mejor que puedes hacer
{% if var == null %}
stuff in here
{% endif %}
Lo que se traduce en:
if ((isset($context[''somethingnull'']) ? $context[''somethingnull''] : null) == null)
{
echo "stuff in here";
}
Lo que si es bueno para su malabarismo de tipo , significa que cosas como 0
, ''''
, FALSE
, NULL
y una var indefinida también harán que esa afirmación sea cierta.
Mi sugerencia es pedir que la identidad sea implementada en Twig.
Sin ningún supuesto, la respuesta es:
{% if var is null %}
Pero esto será cierto solo si var
es exactamente NULL
, y no cualquier otro valor que se evalúe como false
(como cero, cadena vacía y matriz vacía). Además, causará un error si var
no está definido. Una forma más segura sería:
{% if var is not defined or var is null %}
que se puede acortar a:
{% if var|default is null %}
Si no proporciona un argumento para el filtro default
, se asume que es NULL
(tipo de valor predeterminado predeterminado). Así que la forma más corta y segura (lo sé) de verificar si una variable está vacía (nula, falsa, cadena / matriz vacía, etc.):
{% if var|default is empty %}
También puedes usar una línea para hacer eso:
{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}
puede utilizar el siguiente código para comprobar si
{% if var is defined %}
var is variable is SET
{% endif %}
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}