Redirect a přepnutí šablony po zpracování formuláře
- n.u.r.v.
- Člen | 485
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
- n.u.r.v.
- Člen | 485
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
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ří