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.