$form->setDefaults z databáze
- Vanamas
- Člen | 20
Zdravím,
dá se říct, že s Nette začínám a rozhodl jsem se, že svůj současný
web, postavený na Joomla 1.5 předělám do Nette.
Když mám v presenteru actionGame kde získám id hry a game objekt, jak a kde by bylo nejlepší předat objekt game formuláři, vytvořeném přes createComponent, tak abych mohl formulář předvyplnit. Nějak jsem nedohledal co se v presenteru volá dřív, jestli createComponent nebo action.
Díky
Editoval Vanamas (18. 1. 2014 22:03)
- s4muel
- Člen | 92
no chcel som to najskor rozpisat, ale sam by som to lepsie nenapisal, ako je
to tu;)
https://doc.nette.org/cs/forms#…
a k tomu https://latte.nette.org/cs/tags#…
v skratke: ak mas v presenteri spraveny factory na vyrobenie toho formularu
(vid prvy odkaz, ale predpokladam, ze ano, pretoze nizsie pises, ze tam mas
createComponent), tak v latte staci pouzit:
{control editGameForm}
nejake info naviac: https://doc.nette.org/…n/presenters#…
odpoved na druhu otazku najdes po blizsom preskumani metody actionEdit()
v priklade https://doc.nette.org/…editing-form
v riadku
$this["recordForm"]->setDefaults($this->record);
sa vytvori komponenta recordForm a nastavia sa jej hodnoty vytiahnute z db. takze opat v skratke, ak potrebujes do formulara naplnit predvolene hodnoty, tak v actionGame() spravis obdobne:
$this["editGameForm"]->setDefaults(array('nazov_hry' => 'nette sandox', 'hodnotenie' => '***'));