V jakém presenteru vybrat data z db, aby byla dostupná všude

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

Ahoj, snažil jsem se to někde najít, ale marně.
V @layout.latte mám jeden div, který je těsně pod menu a vypisuje aktuální top nabídky. V jakém presenteru bych měl provést dotaz do db, abych měl příslušnou proměnnou pro foreach dostupnou v každé šabloně? Momentálně to mám samozřejmě špatně v Homepage:default, takže jakákoliv jiná šablona (kterou obsluhuje jiný presenter) vypíše „Undefined variable: nabidky“.

Děkuji moc!
K.

Marek Šneberger
Člen | 130
+
0
-

V BasePresenteru. Nebo v takovém, od kterého ty Tvé presentery dědí.

Jan Endel
Člen | 1016
+
+3
-

Na tohle bych si spíše udělal komponentičku.

Šaman
Člen | 2666
+
+7
-

Obecně platí taková nepřesná, ale pro začátek postačující poučka. Proměnné, které potřebuješ v @layout.latte plníš v BasePresenteru v metodě beforeRender().
V koncových presenterech metodu beforeRender() pokud možno nepoužívej, jinak v ní musíš zavolat i parent::beforeRender().

Jinak komponenta je ve většině případů lepší řešení, ale jestli teprve začínáš, tak se ke komponentám prokopeš časem. Stejně tak časem začneš používat model a nebudeš tahat data z databáze přímo v presenterech.

Editoval Šaman (11. 1. 2015 17:30)

charlie.v
Člen | 20
+
0
-

Díky moc! K.