redirect ve zpracování formuláře

- jik
- Člen | 150
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 | 1313
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)