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?

245
demandé sur dreftymac 2010-07-16 16:38:33

7 réponses

Selon ce dont vous avez exactement besoin:

  • is null vérifie si la valeur est null:

    {% 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 %}
464
répondu NikiC 2011-12-07 15:28:55

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("") }}
111
répondu lax4mike 2013-12-18 23:12:06

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 %}
33
répondu Jamol 2017-04-22 10:51:14

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.

6
répondu Kendall Hopkins 2010-07-16 13:56:16
     //test if varibale exist
     {% if var is defined %}
         //todo
     {% endif %}

     //test if variable is not null
     {% if var is not null %}
         //todo
     {% endif %}
5
répondu thepaulo 2013-08-28 07:46:47

Vous pouvez utiliser le code suivant pour vérifier si

{% if var is defined %}

var is variable is SET

{% endif %}
3
répondu M.M.H.Masud 2013-05-26 10:06:09

Vous pouvez aussi utiliser une ligne pour le faire:

{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}
1
répondu xavit 2017-08-21 20:55:17