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 | 813
+
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.