Nefunkční onSuccess v továrně
- Blizard
- Člen | 45
Zdravím, mám podobný problém jako se zde již několikrát řešil a nemůžu na to přijít. Aplikaci mám rozdělenou na dva namespace FrontModule a AdminModule. V administraci mi formuláře normálně fungují, ale ve frontendu když chtěl vytvořit registrační formulář, tak jakoby se nevyvolala událost onSuccess… Přikládám kody:
public function createComponentRegistrationNewUserForm() {
$form = new Form();
....
$form->onValidate[] = callback($this, 'validateRegistrationNewUserForm');
$form->onSuccess[] = $this->registrationNewUserFormSubmitted;
return $form;
}
Zkoušel jsem dávat i form->onSuccess[] = callback($this,
registrationNewUserFormSubmitted) ale taky nešlo.
onValidate funguje bezvadně.
public function validateRegistrationNewUserForm(Form $form) {
$values = $form->getValues();
...
}
ale onSuccess nejde:
V této metodě se neprovede vůbec nic.
public function registrationNewUserFormSubmitted(Form $form) {
try {
$values = $form->getValues();
Debugger::dump($values);
// Vypíše hlášení
$this->flashMessage('Registrace proběhla v pořádku.', 'success');
$this->flashMessage('Na vámi zadaný email přijde klíč k potvrzení aktivního uživatele. Zkontrolujte si prosím svou schránku.', 'info');
// Zaznamená log
frontLog::log("Byla provedena nová registrace uživatele " . $values->name . " " . $values->surname . ".");
// Obnovíme stránku
$this->redirect('Default:default');
} catch (\Nette\Application\ApplicationException $ex) {
// V případě chyby ji zaznamenáme a vypíšeme
frontErrorLog::log("Uživateli " . $values->name . " " . $values->surname . " (" . $values->email . ") se nepovedla registrace: " . $ex->getMessage());
$this->flashMessage("Registrace se nezdařila. Zkuste to prosím znovu.", "error");
$this->redirect('this');
}
V latte mám klasicky {form registrationNewUserForm}. Tímto stylem mi to funguje všude v administraci, ale to je tak všechno. Po odeslání se provede interní validace + validace v dané metodě a nakonec nedojde k onSuccess. Adresa vypadá /registration/?do=registrationNewUserForm-submit. Kdyby někoho něco napadlo, dejte prosím vědět. Jebu se s tím už celej den a nemůžu na to přijít..
- n.u.r.v.
- Člen | 485
Blizard napsal(a):
Milo napsal(a):
A bez
onValidate
se spustí? Zkus si nahodit ionError
a dumpuj.bez onValidate je to naprosto stejný. Jak se používá onError?
To je divné – zkus udělat jen čistý form s jedním prázdným inputem a zkus to odeslat…Mě toto dělá, když je blbě vyplněno nějaké pole, nebo když já blbě předvyplním form…
- japlavaren
- Člen | 404
ak vykreslujes form manualne – vypisujes si v sablone erroy? skus to zamenit za {control registrationNewUserForm} a odoslat to tak. typoval by som chybu tam
- Blizard
- Člen | 45
japlavaren napsal(a):
ak vykreslujes form manualne – vypisujes si v sablone erroy? skus to zamenit za {control registrationNewUserForm} a odoslat to tak. typoval by som chybu tam
Todle mě nenapadlo, bude to pravděpodobně ono. Já mám klasicky validaci při vytváření komponenty, kdy se mi to zobrazuje přes flashMessage, ale některé chyby se asi teda zobrazují i přes výpis errorů. Musím na to mrknout. zatím díky, myslím že vyřešeno. Kdyžtak napíšu.