Argument passed … must be an instance of Nette\Security\IIdentity, boolean given (chybny login)
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- simPod
- Člen | 383
Ladenka mi vyhazuje chybu
Argument 1 passed to Nette\Http\User::setIdentity() must be an instance of Nette\Security\IIdentity, boolean given
Takhle vypada muj kod:
public function signInFormSubmitted($form) {
try {
$values = $form->getValues();
$user = $this->getUser();
if ($values->remember) {
$user->setExpiration('+ 14 days', FALSE);
} else {
$user->setExpiration('+ 20 minutes', TRUE);
}
$user->login($values->username, $values->password); //zde chyba
$this->flashMessage('Byl jste přihlášen.');
$this->redirect('Admin:');
} catch (NS\AuthenticationException $e) {
$form->addError($e->getMessage());
}
}
Co delam spatne? diky
- bojovyletoun
- Člen | 667
přesně tak, vrací identity, jinak dává vyjímku, která se odchycuje v presenteru. Viz zde hledej catch.
Editoval bojovyletoun (15. 12. 2011 22:13)
- simPod
- Člen | 383
No ja zachytavam vyjimku viz cast kodu ve funkci po submit formulare:
} catch (NS\AuthenticationException $e) {
$form->addError($e->getMessage());
}
ale ona se asi nezachyti a ja nevim proc:
PHP Fatal error: Uncaught exception Nette\Security\AuthenticationException with message 'User not found.' in C:\wamp\www\juliska\app\models\UserModel.php
(zkusil jsem i zmenu na
catch (Nette\Security\AuthenticationException $e) {
, pac jsem
zjistil, ze NS neni definovano, ale stejne…