Redirect z jedoho conrtoleru na druhý
- smarma
- Člen | 5
Začínám s Nette na jednom projektu a mám problém s redirectem z jednoho presenteru na jíný. Je to v části přihlašování do systému, kde když proběhne ověření uživatele, chci přesměrovat na jiný preseneter, než ten co obsluhuje formulář. Nicméně místo přesměrování se mi vypíše nad formulářem url, kam by to přesměrovalo. Co s tím?
try{
$user->authenticate($values['user'], $values['password']);
$this->redirect('Interface:default'); //přesměrování na požadovaný presenter
}
catch(Exception $e){
$this->errorMessage = $e->getMessage();
}
- _Martin_
- Generous Backer | 679
Protože metoda $this->redirect(...)
vyvolá VŽDY výjimku
RedirectingException. A protože tvůj kód zachytával VŠECHNY výjimky,
zachytil i „přesměrovávací“ výjimku, která se jindy bez problémů
prokouše až do metody Application->run()
, kde je potom
provedeno přesměrování. Změnou kódu jsi nastavil, aby tvůj blok
try-catch
zachytával jen výjimku AuthenticationException,
ostatní (včetně té přesměrovávací) nechá proplout do
vyšších míst.