Redirect a přepnutí šablony po zpracování formuláře

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

Ahoj, řeším následující problém:

Mám 3 krokovou registraci a používám k tomu jeden presenter (RegistrationPresenter.php).

Mám tedy v templates složku Registration a v ní 4 latte soubory:
default, step1, step2, step3.

V RegistrationPresenteru mám 3 metody pro vytvoření 3 formulářů a tedy 3 metody pro zpracování formuláře.

Do teď jsem vždy v metodě pro zpracování formuláře dával setView(‚step_x‘) pro přesunutí na další krok, ale teď jsem se dozvěděl, že to není správné a po zpracování formuláře by mělo vždy dojít k redirectu. Problém je, že nevím, jak správně to vykonat…

Když dám $this->redirect(‚Registration:step2‘); tak dostanu chybu „Nette\Application\UI\InvalidLinkException“ → „No route for Registration:step2()“.

Co dělám špatně? Díky

kuty.cz
Člen | 33
+
0
-

Ahoj,

předpokládám, že ty formuláře nejsou v každém kroku prázdné a předává se například id nového uživatele nebo něco podobného.

Podle popisu co píšeš Ti tam chybí ještě například render metody pro každý krok registrace.

Tzn. něco jako renderStep1 … renderStep3.

n.u.r.v.
Člen | 485
+
0
-

kuty.cz napsal(a):

Ahoj,

předpokládám, že ty formuláře nejsou v každém kroku prázdné a předává se například id nového uživatele nebo něco podobného.

Podle popisu co píšeš Ti tam chybí ještě například render metody pro každý krok registrace.

Tzn. něco jako renderStep1 … renderStep3.

Už jsem na to přišel:

1)měl jsem ještě v startup metode taky setview – to když jsem zrušil, tak jsem se mohl přepnout například na xxx.latte, ale pořád mi nefungoval redirect na step2.latte, ale už to mám:

2)název latte nesmí mít v názvu podtržítka – po zrušení podtržítek->step2.latte už to funguje

Formuláře jsou prázdné, takže asi nepotřebuji render metody. Pokud registraci edituji a tedy předvyplňuji, nastavuji to přímo v metodě pro vytvoření formuláře (createComponent…) – u inputu například dám ->setDefaultValue()

kuty.cz
Člen | 33
+
0
-

n.u.r.v. napsal(a):

Formuláře jsou prázdné, takže asi nepotřebuji render metody. Pokud registraci edituji a tedy předvyplňuji, nastavuji to přímo v metodě pro vytvoření formuláře (createComponent…) – u inputu například dám ->setDefaultValue()

předvyplňovat formuláře při editaci přímo v tovarničce není úplně správný… do továrničky tohle nepatří