zachování parametru po odeslání formuláře
- rbx
- Člen | 13
ahoj,
mám formulář v presenteru na URL admin-edit-user/?userId=1. Parametr userId
je potřeba pro načtení výchozích hodnot uživatele ve formuláři. Po
odeslání formuláře by se měly hodnoty uložit a provést přesměrování
na jinou URL
public function EditUserFormSucceeded($form, $values) {
…
$this->redirect(‚UserList:default‘);
}
nicméně formulář se po odeslání zřejmě nejdříve znovu vyhodnotí na
té URL admin-edit-user, ovšem parametr userId se nepředá a tím pádem to
tam skončí na chybě už před přesměrováním. Jak to vyřešit, předat
parametr, případně jak?
dík
- David Matějka
- Moderator | 6445
ahoj, uved ten parametr v argumentech prislusne action/render metody, tedy
napriklad public function actionDefault($userId)
- rbx
- Člen | 13
tak jsem to udělal, ale má to jeden zádrhel. Funkce createComponentEditUserForm se po odeslání formuláře provede před renderShow($userId), tudíž při vytvoření komponenty po odeslání formuláře se o tom parametru userId neví a zase dojde k chybě. Abych zopakoval celý problém, potřebuji v presenteru načíst do formuláře podle id data uživatele (jde o formulář pro editaci dat uživatele) a po odeslání formuláře přesměrovat na jiný presenter.
- CZechBoY
- Člen | 3608
Co si dat parametr id uzivatele do akce a pri vytvareni formulare vyzadovat
id uzivatele?
Pripadne jeste muzes v akci nastavit defaults pro formular.
Zalezi kde chceš tahat data – presenter vs komponenta.
Aba, to ti uz psal David … No a s cim mas problem? Zkus misto render metody pouzit action metodu, ta se vola driv jak handle formulare.
Editoval CZechBoY (2. 3. 2019 21:26)