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)