Comment vérifier la valeur null dans Twig?
Quelle construction dois-je utiliser pour vérifier si une valeur est nulle dans un modèle de brindille?
7 réponses
Selon ce dont vous avez exactement 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, le is sameas
test, qui effectue une comparaison stricte de deux valeurs, pourrait être intéressant pour vérifier des valeurs autres que null
(comme false
):
{% if var is sameas(false) %}
{# do something %}
{% endif %}
Comment définir des valeurs par défaut dans twig: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
Ou si vous ne voulez pas qu'il s'affiche lorsque null:
{{ my_var | default("") }}
Sans aucune hypothèse, la réponse est:
{% if var is null %}
Mais cela ne sera vrai que si var
est exactement NULL
, et pas toute autre valeur qui évalue à false
(comme zéro, chaîne vide et tableau vide). En outre, cela provoquera une erreur si var
n'est pas défini. Un moyen plus sûr serait:
{% if var is not defined or var is null %}
Qui peut être raccourci en:
{% if var|default is null %}
Si vous ne fournissez pas d'argument au filtre default
, Il suppose NULL
(sorte de défaut par défaut). Donc, le plus court et le plus sûr (je sais) pour vérifier si une variable est vide (null, false, chaîne/tableau vide, etc.):
{% if var|default is empty %}
Je ne pense pas que vous pouvez. En effet, si une variable n'est pas définie (pas définie) dans le modèle twig, elle ressemble à NULL
ou none
(en termes de twig). Je suis sûr que cela vise à supprimer les erreurs d'accès incorrectes 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 %}
, 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 0
, ''
, FALSE
, NULL
, et un undefined var rendra également cette déclaration vraie.
Ma suggestion est de demander que L'identité soit implémentée dans Twig.
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}
Vous pouvez utiliser le code suivant pour vérifier si
{% if var is defined %}
var is variable is SET
{% endif %}
Vous pouvez aussi utiliser une ligne pour le faire:
{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}