Session sekce prosím pomoc

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

Zdravím mam takový problem. Snažím se vytvořit session sekci cenaCelekem do ktere se uloží celkova cena z košíku. Jenže se mi ji nějak nedaří vytvořit. Mám to takhle.

Takto mam session v presenteru.

public $session;

protected function startup() {
    parent::startup();
    $this->kosikRepository = $this->context->kosikRepository;
    $this->sluzbyRepository = $this->context->sluzbyRepository;
    $this->session = $this->getSession();
    $this->session->start();

}

A v dokumentaci Session je toto.

// zápis proměnné
$section->userName = 'franta'; // nebo $section['userName'] = 'franta';

// čtení proměnné
echo $section->userName; // nebo echo $section['userName'];

Jenže to vůbec nechápu. Například nechápu kde se vzalo to $section. Zkoušel jsem třeba

$this->session->jmeno = 'Martin';

ale to je blbost :D Prostě nevím jak vytvořit sekci cenaCelkem a do ni uložit např 350 a poté na nějake uplně jiné stránce vypsat cenu z te session sekce. Jsem začátečník tak mě prosím neukamenujte za to že to nevím nebo tak něco. Předem díky za odpověď :)

Editoval t0x1c (15. 11. 2012 13:21)

David Matějka
Moderator | 6445
+
0
-

a kousek nad tim mas v dokumentaci

// $container je systémový kontejner
$session = $container->session;

// a získáme přístup do sekce 'myCounter':
$myCounter = $session->getSection('myCounter');

a v presenteru staci
$section = $this->getSession("nazev_sekce");

jo a nestarej se o nastartovani session, to ma na starosti nette

Editoval matej21 (15. 11. 2012 13:36)

t0x1c
Člen | 151
+
0
-

No a když tam dam toto co jsi mi napsal tak dostanu error

Undefined variable: container
David Matějka
Moderator | 6445
+
0
-

no container je v presenteru pristupnej pres $this->context, ale jak pisu, v presenteru se dostanes k sekci pres $this->getSession('nazev_sekce');

t0x1c
Člen | 151
+
0
-

No jak jsem nahoře psal ja mam session ulozene v

private $session;

takže co pišeš ty neni spravně $this->getSession(‚nazev_sekce‘); nefunguje ale asi by to mělo být

$this->session->getSection('cena_celkem');

ale to nejak nefunguje protože když pak chci predat hodnotu z te sekce do template pomoci

$this->template->session_cena = $this->session->getSection('cena_celkem');

tak mi to nejde

t0x1c
Člen | 151
+
0
-

Už vyřešeno :) vyřešil jsem to takto.

$this->celkova_cena = $this->context->session->getSection('kosik');
$this->celkova_cena->celkem = $cena_celkem;