Latte – výraz podmínky v ukončovací značce
- Petr Daňa
- Člen | 109
Ahoj, v dokumentaci o Latte jsem se dozvěděl toto:
Výraz v podmínce {if} lze uvést také v ukončovací značce, což se hodí v situacích, kdy při otevírání podmínky ještě jeho výsledek neznáme:
{if}
<h1>Výpis řádků z databáze</h1>
{foreach $database->table as $row} ... {/foreach}
{/if $row}
Pokud je účelem této funkcionality to, aby při prázdném
$database->table
se nevypsal celý blok (tj. ani h1 element),
tak musím konstatovat, že to nefunguje. Mám takhle v šabloně celkem
3 bloky, u prvního v seznamu jsou data, takže to projde, ale ve druhém je
seznam prázdný a vyhazuje to výjimku, že nezná tu proměnnou v uzavírací
značce.
Jde tedy o bug nebo jsem špatně pochopil účel této konstrukce? (Nette 2.0.10)
- jiri.pudil
- Nette Blogger | 1034
Není to bug. Ta výjimka dává smysl: jestliže v
$database->table
nejsou žádná data, pak se
foreach
vůbec neprovede, a proměnná $row
tudíž
není nikde definovaná. Pokud to chceš mermomocí používat takhle, použij
v té podmínce isset($row)
.