Nette 2.1 – iterace přes FormContainer
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- motorcb
- Člen | 552
Zdravím.
Jak v Nette 2.1 projdu v latte ve formuláři všechny Containery?
$sub1 = $form->addContainer('first');
$sub1->addText('name', 'Your name:');
$sub1->addText('email', 'Email:');
$sub2 = $form->addContainer('second');
$sub2->addText('name', 'Your name:');
$sub2->addText('email', 'Email:');
...
Nyní staticky první container:
{formContainer first}
<tr>
<td>{label name /} {input name}</td>
<td>{label email /} {input email}</td>
</tr>
{/formContainer}
Děkuji za rady
Editoval motorcb (10. 1. 2014 11:19)
- David Matějka
- Moderator | 6445
zkus
{foreach $form->getComponents(TRUE, 'Nette\Forms\Container') as $container}
pripadne prvni parametr FALSE, pokud nechces rekurzivne
- motorcb
- Člen | 552
@matej21:
Díky, to vypadá funkčně, jak si sáhnu na komponenty v containeru?
{foreach $form->getComponents(TRUE, 'Nette\Forms\Container') as $container}
<tr>
<td>{dump $container}</td>
<td>{label $container->name /} {input $container->name}</td>
</tr>
{/foreach}
Toto nefunguje a hlásí: Call to undefined method Nette\Forms\Container::getLabel()
- David Matějka
- Moderator | 6445
ty chces containery nebo controly? container samozrejme label nema ani to nejde vykreslit jako input
viz api https://api.nette.org/…ntainer.html
jestli chces vsechny controly, zkus pouzit ->getControls()