$this->getSession(‚user‘) = Call to a member function getSection() on a non-object
- Čamo
- Člen | 798
No nazdar,
a prosím vás vysvetlite mi niekto čo sa deje.
Mám takýto kód, ktorý mi vyhadzuje chybu: Call to a member function
getSection() on a non-object
...
/** @var Nette\Http\Session|Nette\Http\SessionSection */
private $userSesstion;
public function __construct(Nette\Database\Context $database)
{
$this->database = $database;
$this->userSesstion = $this->getSession('user');
$this->template->userSesstion = $this->getSession('user');//userSesstion;
}
Zdá sa že to nejako súvisí s umiestnením v konštruktore, ale nechápem ako.
- David Matějka
- Moderator | 6445
v konstruktoru nedelej nic krome predani tech zavislosti do properties tridy. Presenter v tu chvili neni ready. Akce provadej nejdrive ve startupu
protected function startup()
{
parent::startup();
//kod
}
a sablonu pln az v render metodach, pokud je to mozne (coz tady je)
- David Matějka
- Moderator | 6445
ano tohle fungovat bude – muj prispevek se vztahoval pouze k presenteru. Ale presenter se musi incializovat – zavolaji se injecty, spusti se run, inicializuji se parametry atd atd. a to v konstruktoru jeste neni. A od toho je tam metoda startup, kde je presenter jiz plne inicializovany
Editoval matej21 (3. 6. 2014 12:35)