Quelle structure utiliser pour vérifier si une valeur est NULL dans un template Twig ?
Réponses
Trop de publicités?Selon ce exactement que vous avez besoin:
-
is null
vérifie si la valeur estnull
:{% if var is null %} {# do something #} {% endif %}
-
is defined
vérifie si la variable est définie:{% if var is not defined %} {# do something #} {% endif %}
En outre, l' is sameas
test, qui est un type de stricte comparaison de deux valeurs, pourrait être d'intérêt pour le contrôle des valeurs autres que null
(comme false
):
{% if var is sameas(false) %}
{# do something %}
{% endif %}
Comment définir les valeurs par défaut dans Rameau : http://twig.sensiolabs.org/doc/filters/default.html
Ou si vous ne voulez pas qu’il s’affiche lorsque null :
Sans hypothèses, la réponse est:
{% if var is null %}
Mais ce n'est vrai que si var
est exactement NULL
, et pas les autres "falsey" de la valeur (comme false
, 0
, ""
et array()
). En outre, il va provoquer une erreur si var
n'est pas défini. Donc, la meilleure façon est:
{% if var is not defined or var is null %}
qui peut être réduit à:
{% if var|default is null %}
Si vous ne fournissez pas un argument pour l' default
filtre, il suppose NULL
(sorte de défaut par défaut). Et si vous voulez en toute sécurité à vérifier si var
est "falsey":
{% if var|default is empty %}
Je ne pense pas que vous le pouvez. C'est parce que si une variable n'est pas définie (pas de jeu) dans le template twig, il ressemble NULL
ou none
(dans twig). Je suis assez sûr que c'est de supprimer le mauvais accès à la survenue d'erreurs dans le modèle.
En raison de l'absence d'une "identité" dans Twig (===
) c'est le meilleur que vous pouvez faire
{% if var == null %}
stuff in here
{% endif %}
Ce qui se traduit par:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
Qui si votre bien à votre type de jonglage, signifie que les choses telles que l' 0
, ''
, FALSE
, NULL
, et indéfini var permettra également de faire cette déclaration vrai.
Mon suggérer, c'est de demander l'identité de l'être mises en œuvre dans Twig.