Odchytenie vynimky z modelu v prezenteri
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- tomolas
- Člen | 66
Zdravim,
uz dlhsie hladam kde je pes zakopany a nedari sa mi. Upgradol som moju
„admin“ aplikaciu do Nette 2.0-dev, PHP 5.3.
Moj problem je, ze neviem spravit to, aby bola korektne odchytena chyba z modelu v prezenteri. V starsej verzii to funguje ako ma.
Priklad:
model:
<?php
public function authenticate(array $credentials)
{
list($username, $password) = $credentials;
$row = dibi::fetch('...');
if (!$row) {
throw new AuthenticationException("Používateľ '$username' sa nenašiel.", self::IDENTITY_NOT_FOUND);
}
if ($row->password !== sha1($password)) {
throw new AuthenticationException("Nesprávne heslo.", self::INVALID_CREDENTIAL);
}
unset($row->password);
return new Nette\Security\Identity($row->user_id, $row->role, $row);
}
?>
presenter:
<?php
public function loginFormSubmitted($form)
{
try {
$user = $this->getUser();
$user->login($form['username']->getValue(), $form['password']->getValue());
$this->getApplication()->restoreRequest($this->backlink);
$this->flashMessage('Boli ste úspešne prihlásený.', 'success');
$this->redirect('Gallery:default');
} catch (AuthenticationException $e) {
$this->flashMessage($e->getMessage(), 'error');
}
}
?>
Problem je, ze mi chybu ukaze az Ladenka, namiesto toho, aby bola odchytena a ukazala sa flash spravicka.
Je to vecou nejakeho nastavenia, alebo mi nieco uniklo vramci PHP 5.3? Viete niekto ako na to?
Diki moc!