Vlastna premenna len v module

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

Ahojte,

mam aplikaciu v nette. Ma modul Project a v tomto module je WebPresenter, CategoryPresenter atd.

Aplikacia funguje nasledovne, registrujem sa alebo sa prihlasim, som v zakladnej administracii, tam mam moznost zmenit si uzivatelske nastavenia alebo si pridat projekt, pripadne zobrazit si vlastne projekty. Ked by som sa chcel uz dostat do konkretneho projektu, prepnem sa vlastne do modulu Project. Na to, aby som v tomto module vedel v kazdom presenteri, aky projekt akurat pouzivam, potreboval by som si pravdepodobne zaviest nejaku premennu v BasePresenteri, trebars $projectId a tu su naplnim pri kliknuti na projekt v zoznamu projektov (poslem si konkretne $projectId a potom ho nastavim v BasePresenteri pre modul Project).

Je to dobre riesenie? Alebo radsej to $projectId hodit trebars do session?

matopeto
Člen | 395
+
0
-

Na to sluzia perzistentne premenne.

lamerko4ever
Člen | 13
+
0
-

Ak to chapem spravne, tak to realne ulozi do session? a prida sa to do Identity?

matopeto
Člen | 395
+
0
-

Nie, predava sa v url. (co by ti v tvojom pripade malo vyhovovat)

lamerko4ever
Člen | 13
+
0
-

Cize si to mam potom z tej URL vzdy parsovat a nebudem to mat teda v ziadnej premennej?

mkoubik
Člen | 728
+
0
-

Nemusíš, anotace @persistent říká, že se má ten parametr předávat do všech odkazů v rámci daného presenteru/modulu. Pak se „magicky“ objeví v té proměnné.

David Matějka
Moderator | 6445
+
0
-

mkoubik napsal(a):

Nemusíš, anotace @persistent říká, že se má ten parametr předávat do všech odkazů v rámci daného presenteru/modulu. Pak se „magicky“ objeví v té proměnné.

ne tak docela. predava se v hierarchii presenteru – museji tedy dedit od stejneho predka, ktery ma tu @persistent anotaci