Posielanie parametrov do form factory, ich úprava pri submite (neviem ako to presne opísať)

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

Zdravým,

mám nasledujúcu pasáž kódu v presentery:

<?php

    public function createComponentAddRegionForm()
    {
        return $this->itemFormFactory->create(4);
    }

    public function createComponentAddDestinationForm()
    {
        return $this->itemFormFactory->create(3, $this->template->active['regions']->id);
    }

    public function createComponentAddCityForm()
    {
        return $this->itemFormFactory->create(2, $this->template->active['destinations']->id);
    }

    public function createComponentAddHotelForm()
    {
        return $this->itemFormFactory->create(1, $this->template->active['cities']->id);
    }
?>

ide o tri forumláre ktoré ukladajú data v stromovej štruktúre, každý na inej úrovni,

<?php
	$itemFormFactory->create($category, $parent_id)
?>

kde category je hĺbka v strome, a parent_id je id rodiča. Tieto parametre čisto nastavujú hodnoty dvoch hidden polí vo formuláry.

lenže pri tomto kuse kódu nastáva problém pri odosielaní formulárov, pretože ešte nezbehla funkcia render, template ešte neobsahuje data, akým spôsobom bežne riešite takéto prípady ?

tino415
Člen | 46
+
0
-

Ďaľšia otázka, ako odstránim omylom viac násobne postnutú otázku ? :D

newPOPE
Člen | 648
+
0
-

Sam si si odpovedal (este nezbehol render...).

Staci si to presunut napr. do property Presentera a zavolas $this->active[...]. Len tie hodnoty musis ulozit niekde skor ako v render napr. v action... lebo formy sa spracovavaju az po action https://doc.nette.org/…n/presenters#… (aspon ak si dobre pamatam tak to tak je).

Pavel Macháň
Člen | 282
+
0
-

V presenteru používej

$this->template->something

pouze jako vložení dat do šablony. Nikdy to nepoužívej jako obálku pro data, které budeš dál v presenteru vytahovat. Na to si udělej v presenteru proměnou, kterou naplníš v action<name> a dále ji vložíš do továrničky nebo šablony

tino415
Člen | 46
+
0
-

Ono to je problém, lebo dáta pre pre šablonu mi upravujú signály zo snippet-ou, a podľa toho grafu sa vykonávajú až po action, jedine miesto kde mám tie dáta čo potrebujem do toho formulára je hidden pole vo formuláry (tá stránka rendruje veľke množstvo dát, ak by som mal vždy v action získať všetky), ale uvažujem že si to môžem ukladať do session…,

Editoval tino415 (31. 8. 2015 15:21)

tino415
Člen | 46
+
0
-

Toto by nešlo, pretože ja tam zobrazujem veľmi veľa dát, a tie dáta upravujem následne pomocov snippet-ov a signalov, takto by som si pri každom signály musel naťahať všetký dáta v action a potom podľa signálu ich ešte prepísať…, ak by sa aj dalo zistiť či volám signál v action, príde my to ako dosť hack…

Editoval tino415 (4. 9. 2015 10:32)