Komunikacia medzi templatom a presenterom

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

Zdravim, potreboval by som pomoct s nasledujucim problemom:

V mojom template si prebehnem foreachom data, ktore som si tam poslal z databazy (cez prezenter). V tychto datach dostanem user_id (zakazdym ked prejde foreach cyklus) a nasledne sa chcem pozriet do tabulky users v databaze a zistit viac informacii (a vypisat tieto informacie) o userovi, ktory ma to prislusne user_id.

Teda napadlo ma si na to spravit nejaku pomocnu funkciu v presentery, ale neviem ako do nej posielat udaje z templatu.

Ako by som to mal robit? Teda ako si mozem posielat data z templatu do presenteru?
Dakujem za rady.

Editoval drick (21. 4. 2015 19:10)

Lukeluha
Člen | 130
+
+1
-

Nejjednodušší bude, když si vytáhneš už v presenteru všechny data o každém uživateli, něco jako $this->databaseContext->table('users'), výsledek této funkce si předáš do šablony a v ní poté foreachem přistoupíš ke každému uživateli a jeho datech. Více viz. zde

Jinak šablona by neměla mít vůbec přístup k datům z presenteru, model vůbec neví o presenteru, stejně tak šablona neví o presenteru – šablona pouze dostane nějaká data, se kterými poté nějak nakládá (převážně vypisuje). Tady nebo tady nebo např tady si můžeš přečíst o mvc více.

Editoval Lukeluha (21. 4. 2015 19:17)

drick
Člen | 61
+
0
-

Hej, asi to predsalen spravim tak ako hovoris Lukeluha, dakujem.

Lukeluha
Člen | 130
+
0
-

drick napsal(a):

Hej, asi to predsalen spravim tak ako hovoris Lukeluha, dakujem.

nz :)

Navíc je to i mnohonásobné ušetření času, uděláš 1 dotaz do databáze místo několika x dotazů za každého uživatele.

akadlec
Člen | 1326
+
+1
-

A taky je to tak trochu proti proudu, do template bys měl předávat již „hotová“ data která chceš zobrazit.

Lukeluha
Člen | 130
+
0
-

akadlec napsal(a):

A taky je to tak trochu proti proudu, do template bys měl předávat již „hotová“ data která chceš zobrazit.

to samozřejmě taky :)