Magie v přihlašovacím formuláři / validace
- Dan Hundrt
- Člen | 74
Dobrý den,
rád bych se zeptal, jak vlastně nette zjišťuje tabulku s uživateli. Mám metodu na přihlašování, která funguje bez potíží (až na problém níže). Jen nevím, jak si vlastně nette zjišťuje, z jaké tabulky má data brát. Sám si skenuje, který sloupec odpovídá klíčům? Viz. níže:
public function loginProcess(Form $form)
{
$values = $form->getValues();
if ($values->remember) {
$this->presenter->getUser()->setExpiration('+ 14 days', false);
} else {
$this->presenter->getUser()->setExpiration('+ 20 minutes', true);
}
try {
$this->presenter->getUser()->login($values->email, $values->password); // z jaké tabulky si vlastně bere data?
$this->flashMessage('Byli jste uspěšně přihlášení, děkujeme!', 'flash__success');
} catch (AuthenticationException $error) {
$this->flashMessage($error->getMessage(), 'flash__warning');
}
if ($this->presenter->isAjax()) {
$this->redrawControl('login');
} else {
$this->redirect('this');
}
}
Dále bych měl prosbu, jak dostat do flashMessage chybu z formuláře. V kódu níže chybu do flashky zobrazím podle Exception, rád bych si volal medotu ($form->onSuccess[]), která by vyrenderovala chyby. Něco jako:
$form->onError[] = [$this, 'registerError'];
public function registerError(Form $form)
{
$this->flashMessage($form->getErrors()); // -> nefunguje, po dumpnutí se chyby vykreslí
if ($this->presenter->isAjax()) {
$this->redrawControl('registration');
} else {
$this->redirect('this');
}
}
V šabloně mám:
<ul class=error n:if="$form->errors">
<li n:foreach="$form->errors as $error">{$error}</li>
</ul>
Děkuji
- F.Vesely
- Člen | 369
Zadna magie, musis si napsat Authenticator, vice viz dokumentace https://doc.nette.org/…thentication
getErros() vraci pole, budes ho muset proiterovat a vlozit do flashMessage kazdou chybu zvlast.
- Dan Hundrt
- Člen | 74
Ok, díky za info. Ted jsem vycetl, ze Auth. bere by default data z tabulky user, proto je safe, zadna magie :-).
Díky