Vykreslení exception Nette\Security\AuthenticationException
- AZJOL
- Člen | 34
Zdravím,
při přihlašování uživatele mám klasické chybové hlášky:
throw new Nette\Security\AuthenticationException('The password is incorrect.', self::INVALID_CREDENTIAL);
Pokud v latte použiju {control SignInForm}, tak se v pohodě vypisují. Já ale vykresluju formulář ručně. Mohl byste mi někdo poradit, jak vykreslím tyto vyjímky?
- David Matějka
- Moderator | 6445
ahoj,
jen pro upřesnění, samotné exceptions se nevykreslují, vykreslují se
formulářové chyby přidané přes $form->addError()
jako
je to tady
(je možné, že tam máš $form->addError($e->getMessage())
,
takže by se vypisoval text vyjimky, ale obecne to není dobrý nápad, ty
zprávy ve vyjímkách většinou nejsou vhodné pro uživatele a můžou
v nich uniknout citlivé informace)
a teď teda jak vykreslit formulářové chyby. treba takto zcela manualne
{form signInForm}
<ul class="errors" n:if="$form->hasErrors()">
{* tohle vykresli vsechny chyby vcetne tech na inputech *}
<li n:foreach="$form->getErrors() as $error">{$error}</li>
{* tohle pak vykresli jen globalni chyby na formu *}
<li n:foreach="$form->getOwnErrors() as $error">{$error}</li>
</ul>
{/form}
případně můžeš použít zkratku pro vykreslení tak, jak by to udělal automatický renderer, myslím, že je to takhle:
{form signInForm}
{$form->render('errors')}
{/form}