Vlastní vykreslování formu
- wotaen
- Člen | 82
Ahoj všichni,
nemůžu to rozseknout…nejde mi o konkrétní řešení, ale spíš
o best practice.
Potřebuji vykreslit tabulku s checkboxama + tlačítko nekonec (třebas
„smaž označené“). Tabulku vykresluji přes template
{foreach…}tabulka{/foreach}, ale co ta zatracená tlačítka?
První nápad byl formulář vygenerovat v Presenteru v metodě
createComponent. Ale přijde mi to jako nehezké míchání (přece jenom 95%
jsou informace neformulářového charakteru, lépe jim bude v templatu než
v nějaké metodě), template by tedy byla logická volba.
Ale jak na to? Ruční generování formuláře mi sice nevadí, ale moc mi to
nezapadá do celkového konceptu frameworku. Spíš mi něco uniká,
jenže co…
Díky, Michal
- wotaen
- Člen | 82
Malý update, nakonec jsem to vyřešil následovně, kdyby to někoho zajímalo…
V metodě XZPresenter->createComponent vytvářím formulář následovně:
…
foreach($this->getContacts() as $contact) {
$form->addCheckbox(‚contact‘.$contact->id,'');
}
…
getContacts je result z databaze
v samotne sablone potom delam tohle…
…
{foreach $contacts as $contact}
<tr>
<td>{$refineForm[‚contact‘.$contact->id]->control}</td>
<td>{$contact->email}</td>
<td>{$contact->name} {$contact->surname}</td>
<td>{$contact->customerName}</td>
<td>{$contact->language} / {$contact->country}</td>
<td>{$contact->type|type}</td>
</tr>
{/foreach}
…
- kravčo
- Člen | 721
Lepšie na to pole checkboxov by asi boli kontajnery – viď príklad k triede Form (API → Nette\Forms\Form.php → Example: How to use naming containers)