zachování parametru po odeslání formuláře

rbx
Člen | 13
+
0
-

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
+
+2
-

ahoj, uved ten parametr v argumentech prislusne action/render metody, tedy napriklad public function actionDefault($userId)

rbx
Člen | 13
+
0
-

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.

duke
Člen | 650
+
0
-

Ten parametr si můžeš vytáhnout kdekoli v presenteru přes:

$this->getParameter('userId');

Alternativní způsob je poslat si to userId v hidden inputu. (pak jej nemusíš posílat přes query string výše popsaným způsobem)

rbx
Člen | 13
+
0
-

tak jsem to asi vyřešil, dám $this->getParameters() přímo do komponenty

Editoval rbx (2. 3. 2019 19:13)

CZechBoY
Člen | 3608
+
0
-

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)

rbx
Člen | 13
+
0
-

zatím jsem to zdá se uspokojivě vyřešil přes getParamaters přímo v komponentě, každopádně díky za všechny návrhy