Как проверить наличие null в ветке?
какую конструкцию я должен использовать, чтобы проверить, является ли значение NULL в шаблоне ветки?
7 ответов:
в зависимости от того, что именно вам нужно:
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") }}или если вы не хотите, чтобы он отображался при null:
{{ 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 %}если вы не предоставите аргумента , он предполагает
NULL(вроде по умолчанию неисполнение.) Поэтому самый короткий и безопасный способ (я знаю) проверить, является ли переменная пустой (null, false, пустая строка/массив и т. д.):{% if var|default is empty %}
Я не думаю, что вы можете. Это связано с тем, что если переменная не определена (не установлена) в шаблоне twig, она выглядит как
NULLилиnone(В смысле ветку). Я почти уверен, что это для подавления ошибок плохого доступа, возникающих в шаблоне.из-за отсутствия "идентичности" в ветке (
===) это лучшее, что вы можете сделать{% if var == null %} stuff in here {% endif %}что переводится как:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null) { echo "stuff in here"; }что если хорошо тип жонглирование, это значит, что например,
0,'',FALSE,NULL, и неопределенный 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 %}