Какую конструкцию я должен использовать, чтобы проверить, является ли значение NULL в шаблоне Twig?
Как проверить значение null в Twig?
Ответ 1
В зависимости от того, что вам нужно:
-
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 %}
Ответ 2
Как установить значения по умолчанию в twig: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
Или если вы не хотите, чтобы он отображался, когда null:
{{ my_var | default("") }}
Ответ 3
Без каких-либо предположений ответ таков:
{% 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 %}
Ответ 4
Я не думаю, что ты можешь. Это связано с тем, что если переменная undefined (не задана) в шаблоне ветки, она выглядит как 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.
Ответ 5
//test if varibale exist
{% if var is defined %}
//todo
{% endif %}
//test if variable is not null
{% if var is not null %}
//todo
{% endif %}
Ответ 6
вы можете использовать следующий код для проверки того,
{% if var is defined %}
var is variable is SET
{% endif %}
Ответ 7
Вы также можете использовать одну строку:
{{ yourVariable is not defined ? "Not Assigned" : "Assigned" }}