Какую конструкцию я должен использовать, чтобы проверить, является ли значение 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" }}