Как проверить значение null в Twig?

Какую конструкцию я должен использовать, чтобы проверить, является ли значение NULL в шаблоне Twig?

    В зависимости от того, что именно вам нужно:

    • is null указывает, имеет ли значение значение null :

       {% if var is null %} {# do something #} {% endif %} 
    • is defined ли переменная:

       {% if var is not defined %} {# do something #} {% endif %} 

    Кроме того, тот is sameas тест, который выполняет строковое сравнение двух значений, может представлять интерес для проверки значений, отличных от null (например, false ):

     {% if var is sameas(false) %} {# do something %} {% endif %} 

    Как установить значения по умолчанию в twig: http://twig.sensiolabs.org/doc/filters/default.html

     {{ my_var | default("my_var doesn't exist") }} 

    Или если вы не хотите, чтобы он отображался при нулевом значении:

     {{ my_var | default("") }} 

    Без каких-либо предположений ответ таков:

     {% if var is null %} 

    Но это будет верно, только если var точно равен NULL , а не любое другое значение, которое вычисляется как false (например, нуль, пустая строка и пустой массив). Кроме того, это вызовет ошибку, если var не определен. Более безопасным способом было бы:

     {% if var is not defined or var is null %} 

    который может быть сокращен до:

     {% if var|default is null %} 

    Если аргумент фильтра по default указан, он принимает NULL (по умолчанию используется по умолчанию). Итак, самый короткий и безопасный способ (я знаю), чтобы проверить, пуста ли переменная (нуль, ложь, пустая строка / массив и т. Д.):

     {% if var|default is empty %} 

    Я не думаю, что ты можешь. Это связано с тем, что если переменная не определена (не установлена) в шаблоне ветви, она выглядит как NULL или none (в терминологии веток). Я уверен, что это должно подавлять ошибки плохого доступа, возникающие в шаблоне.

    Из-за отсутствия «идентичности» в Twig ( === ) это лучшее, что вы можете сделать

     {% if var == null %} stuff in here {% endif %} 

    Что означает:

     if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null) { echo "stuff in here"; } 

    Который, если ваш товар при манипулировании вашим типом , означает, что такие вещи, как 0 , '' , FALSE , NULL и undefined var, также сделают это утверждение истинным.

    Мое предложение – попросить, чтобы личность была внедрена в Twig.

      //test if varibale exist {% if var is defined %} //todo {% endif %} //test if variable is not null {% if var is not null %} //todo {% endif %} 

    вы можете использовать следующий код, чтобы проверить,

     {% if var is defined %} var is variable is SET {% endif %} 

    Вы также можете использовать одну строку:

     {{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}