Session v presenteru a předání do render

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

Dobrý den, už asi pětkrát jsem si přečetl dokumentaci sessions v nette, ale zřejmě mi něco uniká.
Zkoušel jsem hledat odpověď i zde na fóru, ale daleko jsem se nedostal.

Mám formulář, který se má před odesláním do databáze vypsat kvůli kontrole zadaných hodnot. A u té kontroly mám podmínku u které může nastat, že při té kontrole přibude ještě jeden formulář pouze s jedním inputem, který ale změní jedno pole ve výstupu z „prvního“ formuláře.

Ale teď to podstatné. Výstup z „prvního“ formuláře chci uložit do session, to udělám následovně

    public function taskFormControl(Form $form) {

        $section = $this->getSession('task');
        $section->firstForm = $form->getValues();
        dump($section);
}

To funguje, v dumpu mám všechny hodnoty z formuláře.

Potom mám renderAdd() a tu session tam chci dostat abych data mohl vypsat. Tam mám

$section = $this->getSession("task");
		dump($section)

Tak výstup z dumpu už je prázdný, lépe řečeno pole „data“ je prázdné.

Ano vím mohl bych v taskFormControl uložit výstup z formuláře do proměnné (např. temp_array) a v renderAdd to přiřadit proměnné $this->template->control_data = $this->temp_array.

Ale přišlo mi to komplikované když ty data co mám v session(„task“) stejně budu potřebovat při odesílání „druhého“ formuláře a následném posílání do databáze.

Jde to nějak udělat nebo si výstup z formuláře mám uložit do proměnné + do session?

Děkuji za odpověď.

ViPEr*CZ*
Člen | 818
+
0
-

Volá se taskFormControl před renderAdd? Jak je nastavená expirace sessions?

Rudolf247
Člen | 38
+
0
-

Ano taskFormControl se volá před renderAdd a expirace sessions je na 15 minut.