Vykreslování inputů, které nejsou v containeru
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Usoplesk
- Člen | 13
Zdravím,
mám továrničku na formulář:
...
$form = new Form();
$address= $form->addContainer("address");
$address->addText('street', 'Ulice');
$address->addText('streetNum', 'Č.P.');
$form->addText('firstName', 'Jméno');
$form->addText('lastName', 'Příjmení');
...
a v šabloně se snažím vykreslovat jen inputy, které nejsou uvnitř nějakého containeru. Bohužel se mi to nedaří. Zkoušel jsem opodmínkovat vykreslovací foreach tak, aby nevykresloval container.. to ovšem funguje, container se nevypíše, ale jeho obsah bohužel ano.
<fieldset>
{foreach $form->controls as $formControl}
{if !($formControl instanceof Controls\Container)}
{$renderer->renderPair($formControl)|noescape}
{/if}
{/foreach}
</fieldset>
Je nějaká možnost, jak na úrovni šablony zjistit, zda je formControl uvnitř nějakého containeru?
Editoval Usoplesk (8. 9. 2017 12:26)
- David Matějka
- Moderator | 6445
Ahoj, defaultni implementace vytahuje vsechny IControl rekurzivne, melo by tedy stacit pouzit neco jako
{foreach $form->getComponents(FALSE, Nette\Forms\IControl) as $formControl}