session – deklarace containeru

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

Dobrý den,
snažím se naučit session dle dokumenteace: https://doc.nette.org/…ttp/sessions
ale nevím jak mám nadeklarovat proměnou $container, můžete mě někdo navést na správné řešení?

JuniorJR
Člen | 181
+
0
-

Pokud pracuješ se session uvnitř presenteru, pak přistupujes k službě session a posléze do jednotlivých sekcí tímto způsobem:

// A) úplný zápis
$section = $this->getService('session')->getSection('sectionName');
// B) zkrácený zápis
$section = $this->session->getSection('sectionName');
// C) úplně nejkratší zápis, viz. HospiLan :)
$section = $this->getSession('sectionName');

$section->foo = 'bar';

Editoval JuniorJR (19. 11. 2011 16:27)

spartan13
Člen | 10
+
0
-

Děkuji za odpověď, toto vidím psáno i v dokumentaci ale chybová hláška je „Undefined variable: container “

takže potřebuji deklarovat proměnou $container, což v dokumentaci není

Filip Procházka
Moderator | 4668
+
0
-

V presenteru takto

$container = $this->context

Ale to je zbytečně složité, protože presenter obsahuje šikovonout metodu, ktera si $session vytáhne sama z contextu.

$session = $this->getSession();

Ale spíše budeš chtít rovnou sekci, tady je ještě chytřejší, stačí jí tu sekci předat

$section = $this->getSession('sekce');

Container nepotřebuješ, vůbec tě nezajímá.

Editoval HosipLan (19. 11. 2011 16:09)

JuniorJR
Člen | 181
+
0
-

spartan13 napsal(a):

Děkuji za odpověď, toto vidím psáno i v dokumentaci ale chybová hláška je „Undefined variable: container “

takže potřebuji deklarovat proměnou $container, což v dokumentaci není

Ale nepotřebuješ, stačí si přečíst, co jsem napsal. Viz. HospiLanův příspěvek. ;)

Editoval JuniorJR (19. 11. 2011 16:26)

spartan13
Člen | 10
+
0
-

Děkuji vám za odpovědi, vše funguje jak jste psali.