Vlastní chybové hlášky v Presenteru
- David Zadražil
- Člen | 62
Musíš odchytit vyjímku od AuthenticationException.
try {
$this->getUser()->login(...);
} catch (Nette\Security\AuthenticationException $e) {
$form->addError($e->getMessage());
return;
}
Editoval David Zadražil (28. 3. 2013 9:01)
- David Zadražil
- Člen | 62
No pokud máš přihlašovací formulář „po celé aplikaci“, tedy může se přihlásit na hlavní stránce nebo v jakékoli podstránce, tak bude vhodný BasePresenter. Pokud chceš mít ale přihlašování uživatele na specifické stránce například example.com/prihlaseni tak uživatele budeš přihlašovat v PrihlaseniPresenter, záleží čistě na tom jak si to přestavuješ.
Zkus se kouknout sem. Třeba tě tam něco trkne.
- Filip Procházka
- Moderator | 4668
Předávat chyby z aplikace přímo do formuláře není vždy úplně nejlepší volba. Výjimky jsou pro vývojáře, né pro uživatele.
Tenhle postup je akceptovatelný pouze v případě, že máš v aplikaci překladový systém a pro všechny message z výjimek máš překlady do češtiny pro lidi ;)
- Filip Procházka
- Moderator | 4668
A co je špatného na podmínkách? Pusťte si raději přednášku Honzy Tvrdíka o výjimkách.
- hAssassin
- Člen | 293
@Yohaku > Filip to myslel jinak, ne nepouzit vyjimky, ale nevypisovat primo hlasku z vyjimky uzivateli. Cili pokud by se uvazoval ten kod ze zacatku, tak nejak takto:
try {
$this->getUser()->login(...);
} catch (Nette\Security\AuthenticationException $e) {
$form->addError('Uzivatelske jmeno a heslo neslouhlasi');
return;
}
P.S. prednasku od Honzy musim doporucit, skvele odprednasena a velmi poucna :)
Editoval hAssassin (28. 3. 2013 11:25)
- David Zadražil
- Člen | 62
Pokud používáš Authenticator co je defaultně v Nette (sandboxu?), tak tam jsou vyjímky použité a nevidím důvod proč je nepoužít. Můžeš si to sice upravit podle svého, ale myslím si že je to škoda.
- Filip Procházka
- Moderator | 4668
To je ten nejhorší možný přístup. Koukni na přednášku a nauč se to. http://php.net/exceptions