Vykreslení exception Nette\Security\AuthenticationException

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
AZJOL
Člen | 34
+
0
-

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
+
+1
-

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}
AZJOL
Člen | 34
+
0
-

Tyjo! Děkuji za extrémně rychlou a vyčerpávající odpověď!!