Jak otestoavt proměnnouo v template pomocí is_null?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
forkman
Člen | 72
+
0
-

Zdravím, nějak se mi pořád nedaří v šabloně ošetřit stav, kdy mi DB nic nevrátí a tedy nemám co vykreslovat, myslel jsem, že bude fungovat něco takového:

{if !is_null $var}
vypiš obsah proměnné
{else}
žádná data k vypsání
{/if}

ale to bohužel nefunguje, nikdy se nedostanu do druhé větve IFu. Poraďte prosím jak na to, nikde jsem o tom nic nenašel. Dík.

lucass
Člen | 89
+
0
-

Zkus {if !isset($var)} …

Bernard Williams
Člen | 207
+
0
-

Nazdárek,

jen upřesním. Analogicky k {if !is_null $var} je to {if isset($var)} – bez toho vykřičníku. Popř. {if !empty($var)} se dá taky použít.

Bernard

Ondřej Mirtes
Člen | 1536
+
0
-

A co {if $var} ? Jen tipuju, v tomhle chování proměnných v PHP mám nepořádek.

Patrik Votoček
Člen | 2221
+
0
-

Bernard Williams napsal(a):

Popř. {if !empty($var)} se dá taky použít.

tady bych byl opatrný protože empty($var) vyhoví i nedefinované proměnné, $var = ""; a $var = 0; kdežto u is_null($var) vyhoví pouze $var = NULL; a nedefinovaná proměnná vyhodí Notice…

David Grudl
Nette Core | 8228
+
0
-

{if isset($var)} se dá zkrátit na {ifset $var}