Warning Illegal offset type in isset or empty pri prihlasovaní

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
SontoEremo
Člen | 341
+
0
-

Zdravím ľudia,
Prosím Vás pomôžte mi už s touto chybou Warning Illegal offset type in isset or empty
Já sa už zbláznim všetko som vrátil k pôvodnému stavu ale stále akonáhle sa prihlásim vyhodí to vyššie spomenutú chybu a tracy ukazuje

File: …/web/vendor/nette/http/src/Http/SessionSection.php:117

/**
	* Determines whether a variable in this session section is set.
	* @param  string    name
	* @return bool
	*/
	public function __isset($name)
	{
		if ($this->session->exists()) {
			$this->start();
	}
		return isset($this->data[$name]);
	}

A to som iba pridal do BasePresenteru v DashboardModul-e toto
Ale aj keď to odtial vymažem stále chyba pretrváva

use Nette\Security\IUserStorage;

protected function startup() {
        parent::startup();

        if (!$this->user->isLoggedIn()) {
            if ($this->user->logoutReason() === IUserStorage::INACTIVITY) {
                $this->flashMessage('Boli ste automatický odhlásený - nečinný 30 min.', 'infos');
            }
            $this->redirect(':Sign:in', array('backlink' => $this->storeRequest()));
        }
    }

Môj SignPresenter

/**
	* LoginForm factory.
	* @return Form
	*/
	protected function createComponentLoginForm() {
		$loginForm = new Form;
		$loginForm->addProtection();
		$loginForm->addText('username')
					->setAttribute('placeholder', 'Užívateľské meno')
					->setAttribute('class', 'form-control input-bg');
		$loginForm->addPassword('password')
					->setAttribute('placeholder', 'Heslo')
					->setAttribute('class', 'form-control input-bg');
		$loginForm->addSubmit('signIn', 'Prihlásiť sa');
		$loginForm->onSuccess[] = $this->loginFormSuccessSubmited;
		return $loginForm;
	}
	/**
	* @param Form $loginForm
	*/
	public function loginFormSuccessSubmited(Form $loginForm) {
		$values = $loginForm->getValues();
		try {
			$this->presenter->getUser()->setExpiration('30 minutes', TRUE, TRUE);
            $this->presenter->getUser()->login($values->username, $values->password);
            $this->presenter->restoreRequest($this->backlink);
            $this->presenter->redirect('Dashboard:Dashboard:default');

        } catch (AuthenticationException $e) {
            $loginForm->addError('Neplatné úžívateľské meno alebo Heslo');
        } catch (\App\errors\ActivatedException $e) {
        	$loginForm->addError('Váš účet ešte nebol aktivovaný. Skontrolujte si Váš email a tiež aj zložku SPAM.');
        }
	}

Áno Cache som premazal vlastne ani som nemusel keďže idem cez deployment

Editoval SontoEremo (13. 7. 2014 18:08)

SontoEremo
Člen | 341
+
+2
-

Vyriešené!!!

Do SignPresenter.php som zabudol na začiatok pridať $backlink

class SignPresenter extends CommandPresenter {

	/** @persistent */
    public $backlink = '';

A už všetko šlape :)

Editoval SontoEremo (13. 7. 2014 19:57)