Foreach v latte neiteruje správně

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

Ahoj,

nazrazil jsem na problém s foreach v latte šabloně (je to bug nebo je to takto zamýšleno)

pokud mám:

	{foreach $presenter->items as $item}
		{print_r($item)}
	{/foreach}

Pole se neiteruje a celé se vypíše najednou, ovšem počet iterací je správný (další item má pak hodnotu NULL)

ale když v presenteru nastavím:

	$this->template->items = $this->items;

pak v latte funguje vše jak má.

	{foreach $items as $item}
		{print_r($item)}
	{/foreach}

Díky P.

Pavel Macháň
Člen | 282
+
+4
-

svap napsal(a):

Ahoj,

nazrazil jsem na problém s foreach v latte šabloně (je to bug nebo je to takto zamýšleno)

pokud mám:

	{foreach $presenter->items as $item}
		{print_r($item)}
	{/foreach}

Pole se neiteruje a celé se vypíše najednou, ovšem počet iterací je správný (další item má pak hodnotu NULL)

ale když v presenteru nastavím:

	$this->template->items = $this->items;

pak v latte funguje vše jak má.

	{foreach $items as $item}
		{print_r($item)}
	{/foreach}

Díky P.

Nikdy v šablonách nešahej na presenter. Používej pouze to co si pošleš do template.

David Grudl
Nette Core | 8239
+
0
-

To je divné, je $presenter->items public proměnná?

svap
Člen | 2
+
0
-

Tak při psaní příkladu jak to „nefunguje“ mi vše běží tak jak má (jak přes presenter tak přes template). Omlouvám se za poplach, chyba byla mezi židlí a klávesnící.

Mám ještě obecný dotaz: lze v latte přistupovat na všechny viditelné hodnoty presenteru nebo je to nedoporučené ?

Díky P.

CZechBoY
Člen | 3608
+
0
-

Určitě si všechny proměnný předávej do template.

David Grudl
Nette Core | 8239
+
+1
-

Tak jako u každého objektu, lze přistupovat ke všem viditelným proměnným.