Jak manuálně vykreslit formulář s prvkama vytvořenýma přes foreach?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kloban
Člen | 123
+
0
-

Ahoj,
níže mám kód, kterým v presenteru vytvářím formulář.

Mám tam dvojitý cyklus foreach, kde v prvním vypisuji typy jídel (polevky, hlavní jídla, nápoje, …) a v druhém cyklu vypisuji ke každému typu konkrétní jídla.

Celé to potřebuji v presenteru vykreslit pomocí manuálního vykreslování. U každé skupiny jídel chci mít totiž možnost skupinu sbalit a rozbalit, a označit/odznačit vše.

Jak můžu tyto jednotlivé skupiny od sebe oddělit? A jak je můžu manuálně vykreslit pomocí foreach?

Nemám problém si manuálně vykreslit ty první dva text inputy, ale s tím foreachem si nevím rady.

$form = new UI\Form;

$form->addText('dateOd', 'Datum OD')
	 ->setRequired();
$form->addText('dateDo', 'Datum DO')
	 ->setRequired();

$typStravy = $this->database->table('typStravy');
foreach($typStravy as $typ){
	$form->addGroup($typ['nazev']);
	$jidelniListek = $this->database->table('jidelniListek');
	foreach($jidelniListek as $jidlo){
		$form->addCheckbox($jidlo['id'], $jidlo['nazev']);
	}
}

$form->addSubmit('zobraz', 'Zobraz');
$form->onSuccess[] = $this->nastavDatumFormSucceeded;

Díky za reakce.

mkoubik
Člen | 728
+
+1
-
$jidla = $form->addContainer('jidla');
foreach (...) {
	$jidla->addCheckbox(...);
}
{form ...}
	{foreach $form['jidla']->components as $input}
		{input $input->name}
	{/foreach}
{/form}
kloban
Člen | 123
+
0
-

Supr díky moc.
Jen ještě doplním, jak to musí být v šabloně:

{form ...}
  {formContainer jidla}
    {foreach $form['jidla']->components as $input}
        {input $input->name}
    {/foreach}
  {/formContainer}
{/form}