práce s nette session a formuláři

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

ahoj, může mi někdo prosím poradit, proč se mi nepřenáší data v session?

v actionDefault mám v $this->template->text stále text „poprve“, nikdy se tam nic nepřenese. Když si data dumpnu před redirectem zpět na default, tak v team_id je číslo… ($namespace->team = $data[‚team_id‘];)

díky za radu

  public function actionDefault(){


        $namespace = Environment::getSession('namespace');

        if (isset($namespace->team)) {

            $this->template->text = $namespace->team;
        } else {
            $this->template->text = "poprve";
        }
    }

    protected function createComponentForm($name)
    {
        $teams = TeamModel::fetchAll();

        $names = array();
        foreach ($teams as $val){
            $names[]    = $val->name;
        }

        $form = new AppForm;
        $form->addSelect('team', 'Tým:', $names);
        $form->addSubmit('send', 'Vybrat');

        $form->onSubmit[] = array($this, 'formASubmitted');

        return $form;
    }



    public function formASubmitted(AppForm $form)
    {

        $data = $form->getValues();
        $team = TeamModel::getById($data['team_id']);

        $namespace = Environment::getSession('namespace');
        $namespace->team = $data['team_id'];

        $this->redirect("default");
    }
ViPEr*CZ*
Člen | 821
+
0
-

Zkusil bych si nastavit větší expiraci…
např.:

$namespace->setExpiration("+ 365 days");

Editoval ViPEr*CZ* (28. 11. 2010 11:23)

colek
Člen | 59
+
0
-

tak to nefunguje, zkusil jsem to, ale proč by mi to expirovalo, jde o záležitost vteřiny..

Ped
Člen | 64
+
0
-

tu promennou sablony nastavujes jenom v „action“ handleru a ten se spusti jenom po submitu, takze pokazde kdyz prijde na stranku mimo submit, tak tu session vubec nectes.. (jestli ty kousky kodu chapu spravne)

edit: pardon, nevim nad cim premyslim, actionDefault se vlastne vola asi pokazde… zkus si tam dat nejake to Nette\Debug::dump na jednotlive promenne, abys videl v cem se to lisi nebo co se tam deje.

Editoval Ped (28. 11. 2010 22:57)

Vyki
Člen | 388
+
0
-

Možná pitomost, ale mě takhle jednou napálil Firebug. Ničil session mezi každým requestem. Vyzkoušej ho zakázat nebo to spustit v IE.