redirect ve zpracování formuláře

jik
Člen | 146
+
0
-

Zdravím,
pokouším se dopracovat obsluhu formuláře tak, aby určitá podoba dat ve formuláři vrátila zpátky editování (takové složitější ověření správnosti souboru dat na základě popisu položek v tabulce). Mám tedy actionEdit a renderEdit, k tomu nějaký formulář createComponentEditForm a zpracování formuláře editFormSucceded. Tam se nakonec provede vyhodnocení a v případě potřeby se dosud sestavená data uloží do souboru a následuje návrat do formuláře

$this->redirect('Nemed:return', $fname);

prostřednictvím actionReturn a renderReturn. Tam se formulář naplní daty ze souboru a předá k editování. Až sem je to v pořádku, ale pokud nyní data opravím a odešlu, tak se nezačne zpracovávat editFormSucceded (jak bych očekával), ale znovu actionReturn.

V metodě createComponentEditForm je řádek

$form->onSuccess[] = [$this, 'editFormSucceded'];

o kterém jsem se domníval, že určuje další cestu zpracování formuláře. Jako by ho však redirect přepsal. To je v takovém případě nutné vkládat nějaký další redirect? (a jaký?) Nebo kde by mohla být chyba?

Marek Bartoš
Nette Blogger | 1171
+
0
-

Možná sem raději hoď celý kód. Pokud však redirect voláš před tím, než se do form->onSuccess[] přiřadí callback nebo před tím, než se formulář zpracuje (zpracovává se mezi action a render, při volání handle metod), tak se na zpracování vůbec nedostane, redirect ukončuje okamžitě běh presenteru.

Editoval Marek Bartoš (18. 8. 2021 13:42)