Vložení dodatečných dat do šablony ručně vykreslovaného formuláře

- flamengo
- Člen | 135
Potřeboval bych nějak dostat do šablony, kde ručně vykresluji formulář, nějaké hodnoty. Hodnoty načítám na základě defaulních hodnot formuláře (to je ale vlastně úplně jedno). Nějak takto:
control.php
protected function createComponentPokusForm(){
$form = new Form();
// ...
// ...
$this->template->pokus = 'pokus'; // nějaký další data sem dostat a poté je v šabloně vypsat
return $form;
}
.latte
{form pokusForm}
Pokus: {$pokus}
{/form}
Toto ale skončí chybou, že proměnná pokus není
definovaná. Za nakopnutí díky moc.

- Jiří Nápravník
- Člen | 710
Dej to do action/render metody kde s tim formularem pracujes. Nebo ještě lépe udělej z toho formuláře komponentu a v render() si to tam pošleš.

- flamengo
- Člen | 135
Super, díky. Do render metody to půjde, nebo do
handle. Ona to už celé vlastně je komponenta, která má
4 různé formuláře. A do jednoho to potřebuji nacpat.
Přišlo mi to takový elegantní toto řešit přímo v metodě
createComponentForm1(), když se ty data budou týkat pouze
formuláře Form1.
Editoval flamengo (21. 9. 2015 20:34)

- Unlink
- Člen | 298
No ono to teoreticky môže byť aj v create component ale nieje to
najlepší nápad.
Toto nefunguje proste preto, lebo keď ide nette renderovať šablony, tak si
vytiahne dáta z Presenter::$template a pokiaľ pri renderingu
narazí na nejaký control alebo form, tak ho vytvorí (zavolá
createComponent()) ale keď až tu nastavíš tú hodnotu, tak sa
už do šablóny nedostane.