Jak z presenteru přistupovat k session
- Musilda
- Člen | 12
Mám začátečnický dotaz, jak mám v presenteru přistupovat k session, tady z toho jsem to moc nepochopil sessions
V komponentě vytvořím session, ale v presenteru potřebuji zjistit její existenci. Záměrně sem nedávám kód, protože vůbec nemám představu, jak v presenteru přistupovat k té vytvořené session. Mohu její existenci ověřovat v renderDefault a jak?
Díky za každou radu.
- Tomáš Votruba
- Moderator | 1114
K session můžeš jednoduše přistupovat třeba v metodě startup. Uvádím příklad pro použití ve více metodách.
/** @var \Nette\Http\SessionSection */
private $mySession;
protected function startup()
{
parent::startup();
$this->mySession = $this->context->session->getSection("mySession");
// předáme session komponentě, případně v konstruktoru
$this["myComponent"]->session = $this->mySession;
}
Editoval Schmutzka (15. 6. 2012 21:55)
- ziki
- Člen | 2
Zdravím a předem se omlouvám za lame dotaz-
výše uvedené jsem použil a funguje to super. Co ale nechápu je, jaktože to funguje i zpětně, tzn. pokud v jiné akci presenteru do té lokální proměnné něco přidám, tak že se to uloží zpět do SESSION a pak to tam najdu při reloadu stránky ?
Např.
public function fillSession() {
$this->mySession->name = 'lorem ipsum';
}
Je tohle nějaká featura Nette, že když přiřadím nějaký objekt do lokální proměnné, tak že pak změna v té proměnné se promítá zpět do toho objektu ?