¿Qué construcción debo usar para verificar si un valor es NULL en una plantilla Twig?
php
twig
short-circuiting
Mullido
fuente
fuente
{% if var is not null %}
isset()
función PHP ,is defined
devolverátrue
si se define una variable y su valor es nulo.is_ sameas
debe verse Doc url => twig.symfony.com/doc/2.x/tests/sameas.html{% if var is same as(false) %}
{% if var is sameas(false) %}
Cómo establecer valores predeterminados en twig: http://twig.sensiolabs.org/doc/filters/default.html
O si no quieres que se muestre cuando sea nulo:
fuente
undefined or empty
ynull
?Sin ningún supuesto, la respuesta es:
Pero esto será cierto solo si
var
es exactamenteNULL
, y no cualquier otro valor que evalúefalse
(como cero, cadena vacía y matriz vacía). Además, causará un error sivar
no está definido. Una forma más segura sería:que se puede acortar a:
Si no proporciona un argumento al
default
filtro, se suponeNULL
(una especie de valor predeterminado predeterminado). Entonces, la forma más corta y segura (lo sé) de verificar si una variable está vacía (nulo, falso, cadena / matriz vacía, etc.):fuente
No creo que puedas. Esto se debe a que si una variable no está definida (no establecida) en la plantilla de ramita, se ve como
NULL
onone
(en términos de ramita). Estoy bastante seguro de que esto es para evitar que ocurran errores de acceso incorrecto en la plantilla.Debido a la falta de una "identidad" en Twig (
===
), esto es lo mejor que puedes hacerLo que se traduce en:
¿Qué si su bueno en su tipo de malabares , significa que las cosas tales como
0
,''
,FALSE
,NULL
, y un var indefinido también hacer esa declaración verdadera.Mi sugerencia es pedir que la identidad se implemente en Twig.
fuente
{if var is none}
y cuál es el equivalente de PHP?{% if abcxyz is none %}
convierteif (isset($context["abcxyz"])) { $_abcxyz_ = $context["abcxyz"]; } else { $_abcxyz_ = null; }
if ((null === $_abcxyz_)) { echo "hi"; }
. Básicamente, si el valor es indefinido o nulo, será cierto.none
es un alias paranull
ref .{% if var is empty %}
twig.sensiolabs.org/doc/tests/empty.html que se traduce en PHPif (empty($var))
que evalúa contra un valor de falsey (!isset, null, 0, array(), "", false, "0", 0.0
) php.net/manual/en/function.empty.php Puede también usar{% if var is same as(var) %}
para identidad (===
). twig.sensiolabs.org/doc/tests/sameas.htmlfuente
if var is not null
.También puede usar una línea para hacer eso:
fuente
puede usar el siguiente código para verificar si
fuente
Además, si su variable es un ARRAY , también hay algunas opciones:
O
Esto solo funcionará si su matriz
is defined
AND esNULL
fuente