Formulář nevaliduje na straně serveru

Damo
Člen | 54
+
0
-

Mám vytvořený Form

    protected function createComponentEditUserForm(): EditUserForm {
        $form = new EditUserForm();
        $form->setAction($this->link(":ControlPanel:Api:User:Edit"));
        $form->onValidate[] = [$this, 'editUserFormValidate'];
        $form->onSuccess[] = [$this, 'editUserFormSucceeded'];
        return $form;
    }

POST si neposílám na stejnou stránku ale na jinou
a nechce se mi zavolat onValidate ani onSuccess

public function editUserFormValidate(EditUserForm $form): void {
...
}

rovnou se mi zpracuje action v presenteru kam si posilam ten POST

Kde dělám chybu? Díky za radu

MajklNajt
Člen | 471
+
+1
-

Problém aj jeho príčinu si sám opísal, posielaš form na inú stránku…

dakur
Člen | 493
+
+1
-

Zpracování formuláře se musí provést na stejné stránce, kde ho vytváříš. V tom jiném presenteru ho nemáš, tudíž se ani nemůže zpracovat. Máš nějaký důvod, proč to chceš zpracovávat jinde?

Pokud chceš po zpracování přesměrovat jinam, vyřeš to takto:

public function editUserFormValidate(EditUserForm $form): void {
	// ...
	$this->redirect('NejakyPresenter:nejakaAkce');
}

Editoval dakur (23. 6. 2022 10:01)