NComponent is not attached to ‚Presenter‘
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- jchorvat
- Člen | 12
Mam maly problem. Po tom ako som zacal pouzivat prefixovane Nette, mi tento kus kodu prestal fungovat. Doplnil som N-ka, kde som mal, ale uz neviem ako dalej.
<?php
class AuthPresenter extends NPresenter
{
/** @persistent int */
public $backlink = '';
public function actionLogin($backlink)
{
$form = new NAppForm($this, 'loginForm');
$form->addGroup('Prihlásenie');
$form->addText('username', 'Prihlasovacie meno:');
$form->addPassword('password', 'Heslo:');
$form->addSubmit('login', 'Prihlásiť');
$form->onSubmit[] = array($this, 'loginFormSubmitted');
$this->template->form = $form;
}
public function actionLogout()
{
NEnvironment::getUser()->signOut();
$this->redirect('Auth:login');
}
public function loginFormSubmitted(NAppForm $form)
{
$user = NEnvironment::getUser();
$user->authenticate($form['username']->getValue(), sha1($form['password']->getValue()));
$this->getApplication()->restoreRequest($this->backlink);
$this->redirect('Evidence:list');
}
}
?>
Mozete mi prosim pomoct
- jchorvat
- Člen | 12
Musim pouzivat Nkovu verziu, pretoze na hostingu je PECL rozsirenie Http.
Uz som to vyriesil, v Nkovej verzii je chyba v subore AppForm.php na riadku 57 – chyba tam ‚N‘.
Ked som to opravil, tak tam vyskocila ina chyba: Service ‚IAuthenticator‘ not found.
A to uz neviem vyriesit…
- Jod
- Člen | 701
Skús sa mrknuť v NServiceLocator::getService.
Chyba nastane asi v Nette/Web/User tu:
/**
* Returns authentication handler.
* @return IAuthenticator
*/
final public function getAuthenticationHandler()
{
if ($this->authenticationHandler === NULL) {
$this->authenticationHandler = NEnvironment::getService('Nette\Security\IAuthenticator');
}
return $this->authenticationHandler;
}
Skús si ten interface includnut na zaciatku suboru, možno to pojde =D
Editoval Jod (14. 2. 2009 14:02)