Bir Twig şablonunda bir değerin NULL olup olmadığını kontrol etmek için hangi yapıyı kullanmalıyım?
Tam olarak neye ihtiyacınız olduğuna bağlı olarak:
is null
değerin null
olup olmadığını kontrol eder:
{% if var is null %}
{# bir şey yap #}
{% endif %}
is defined
değişkenin tanımlı olup olmadığını kontrol eder:
{% if var is not defined %}
{# bir şey yap #}
{% endif %}
Ek olarak, iki değerin tür açısından katı bir karşılaştırmasını yapan is sameas
testi, null
dışındaki değerleri (false
gibi) kontrol etmek için ilgi çekici olabilir:
{% if var is sameas(false) %}
{# do something %}
{% endif %}
Twig'de varsayılan değerler nasıl ayarlanır: http://twig.sensiolabs.org/doc/filters/default.html
{{ my_var | default("my_var doesn't exist") }}
Ya da null olduğunda görüntülenmesini istemiyorsanız:
{{ my_var | default("") }}
Yapabileceğinizi sanmıyorum. Bunun nedeni, twig şablonunda bir değişken tanımlanmamışsa (ayarlanmamışsa), NULL
veya none
(twig terimleriyle) gibi görünmesidir. Bunun şablonda kötü erişim hatalarının oluşmasını engellemek için olduğundan eminim.
Twig'de (===
) bir "identity" olmaması nedeniyle yapabileceğiniz en iyi şey budur
{% if var == null %}
stuff in here
{% endif %}
Bu da şu anlama geliyor:
if ((isset($context['somethingnull']) ? $context['somethingnull'] : null) == null)
{
echo "stuff in here";
}
Eğer tip hokkabazlığı konusunda iyiyseniz, 0
, ''
, FALSE
, NULL
ve tanımsız bir var gibi şeyler de bu ifadeyi doğru yapacaktır.
Benim önerim, kimliğin Twig'e uygulanmasını istemektir.