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 nullvérifie si la valeur estnull:{% if var is null %} {# do something #} {% endif %} -
is definedvé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" }}