300 votes

Comment faire pour vérifier pour null dans Rameau ?

Quelle structure utiliser pour vérifier si une valeur est NULL dans un template Twig ?

551voto

NikiC Points 47270

Selon ce exactement que vous avez 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, 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 %}

134voto

lax4mike Points 968

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 :

37voto

jamolkhon Points 1442

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 %}

9voto

Kendall Hopkins Points 12193

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.

3voto

M.M.H.Masud Points 134

vous pouvez utiliser le code suivant pour vérifier si

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X