Latte chyba při použití proměnné s názvem $template

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

Tenhle kód v Latte vyhodí chybu: Call to undefined method Nette\Database\Table\ActiveRow::date().

{foreach $templates as $template}
<tr>
    <td>{$iterator->counter}</td>
    <td>{$template->created|date:'d/m/Y'}</td>
    <td>{$template->updated|date:'d/m/Y'}</td>
</tr>
{/foreach}

Vyhodí to chybu u jakéhokoli modifikátoru.

vvoody
Člen | 910
+
0
-

ukaz presny riadok na ktorom nastane chyba v uz prelozenej sablone

duke
Člen | 650
+
0
-

Proměnná $template má v šabloně speciální význam a obsahuje vlastní objekt šablony. Skrze tento objekt se pak volají např. helpery (ty je nazýváš modifikátory), takže není divu, že ti přestanou fungovat, pokud hodnotu této proměnné změníš.

Vojtěch Dobeš
Gold Partner | 1316
+
0
-

Problém je v použití proměnné $template. Ta má zvláštní význam (pravděpodobně bude vytvořen její bezpečný bratříček $_template). Bratříček však zatím neexistuje, takže oprava bude spočívat v přejmenování iterační proměnné na něco jiného.

Hlubší vysvětlení: helpery se volají právě na proměnné $template. Ergo se volají na iterované proměnné.

patriksima
Člen | 58
+
0
-

Ok, chápu. V manuálu je na to upozorněno? (Nenašel jsem)

bojovyletoun
Člen | 667
+
0
-

V návodu bych na to upozornil, kde myslíte, že je vhodné místo?

  1. https://latte.nette.org/cs/#…
  2. https://latte.nette.org/cs/macros#…

Zde je o tom zmínka, ale tam to asi nikdo nebude hledat.

patriksima
Člen | 58
+
0
-

Když to bude tam i tam, tak to není nic proti ničemu.

llook
Člen | 407
+
0
-

Spíš než v manuálu bych na to upozorňoval nějakou výjimkou.