Posielanie parametrov do form factory, ich úprava pri submite (neviem ako to presne opísať)
- tino415
- Člen | 46
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 ?
- newPOPE
- Člen | 648
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
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
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
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)