Nette Framework pouzivanie session

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

Ahojte,

mam dalsi maly problem ked chcem pouyivat SESSION, tak podla dokumentacie by som to mal spravit pravdepodobne takto…

<?php
$session = $container->getService('session');
$session->name = 'Johny';
?>

… ale nepozna premennu $container, … co mi chyba? dik

Editoval Takeshi (1. 1. 2014 14:18)

David Matějka
Moderator | 6445
+
0
-

chyba ti premenna $container :)

ted vazne:
v presenteru pouzij $this->getSession($section), ve sluzbe si injectni jako zavislost Nette\Http\Session, na ktere muzes volat metodu getSection pro ziskani konkretni sekce

Šaman
Člen | 2666
+
0
-

Systémový kontejner máš v presenteru samozřejmě jako $this->container, jinam (třeba do komponent) je vhodné session injectnout.

Takeshi
Člen | 596
+
0
-

matej21 napsal(a):

chyba ti premenna $container :)

ted vazne:
v presenteru pouzij $this->getSession($section), ve sluzbe si injectni jako zavislost Nette\Http\Session, na ktere muzes volat metodu getSection pro ziskani konkretni sekce

A ako to, prosim ta, urobim? Teda zisiel by sa podrobnejsi navod. Dik :-)

David Matějka
Moderator | 6445
+
0
-

a kde chces session pouzivat?

Takeshi
Člen | 596
+
0
-

matej21 napsal(a):

a kde chces session pouzivat?

Pokial je formular (tovarnicka) spravne vyplneny, prebehne onSuccess[] . V tejto funkcii by som nastavil hodnoty formulara do session a predal ich na dalsiu stranku … teda nieco ako potrdenie formulara …

P.S. Viem ze by sa to dalo spravit jednoducho … proste nastavit formularu action(dalsia_strana) , ale pri formulari sa mi nezobrazuje alert sprava pre …

<?php
$form->addUpload("image","Fotka *")
     ->setRequired("Všetky polia musia byť vyplnené.")
     ->addRule(Form::IMAGE,"Obrázok musí byť typu JPEG, PNG alebo GIF.")
     ->addRule(Form::MAX_FILE_SIZE,"Súbor musí mať veľkosť menšiu ako 8 MB.",8*1024*1024);  // len toto funguje
?>

… ale to som trochu odbocil … no proste som sa musel zariadit inak

David Matějka
Moderator | 6445
+
0
-

a formular zpracovavas kde? v presenteru? nebo to mas v controlu?

Takeshi
Člen | 596
+
0
-

matej21 napsal(a):

a formular zpracovavas kde? v presenteru? nebo to mas v controlu?

Klasika … v presenteru, konretne … mam vytvorenu tovarnicku

<?php
createComponentRegisterForm()
?>
David Matějka
Moderator | 6445
+
0
-

no tak to je to nejjednudossi:

$session = $this->getSession('nazevSekce');
$session->foo = 'bar';
Takeshi
Člen | 596
+
0
-

matej21 napsal(a):

no tak to je to nejjednudossi:

$session = $this->getSession('nazevSekce');
$session->foo = 'bar';

OK … tak uz fat neviem v com robim chybu … skusal som to aj takto v Presenteru 1 vo funkcii onSuccess[]

<?php
$confirm = $this->getSession('confirm');
$confirm->name = 'Johny';
?>

ako to teda vykreslim v druhej sablone, teda na inom mieste? … klasicky vypis

<?php
{$confirm->name}
?>

… asi nebude stacit … teda urcite …

David Matějka
Moderator | 6445
+
0
-

no musis si tu session sekci znovu vytahnout a poslat do sablony

$this->template->confirm = $this->getSession('confirm');
Takeshi
Člen | 596
+
0
-

diky :-) Tema uzavreta :-)