Formulář připojený k presenteru nedovoluje unsetnout jakýkoli prvek

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

Nedaří se mi unsetnout prvek, který je zařazen do nějaké groupy a je v nějakém containeru.

Při vykreslování způsobem „20 řádků“ to nerozchodím.

Editoval mcmatak (12. 8. 2010 10:14)

Panda
Člen | 569
+
0
-

Nějak mi chybí verze Nette a konkrétní chybová hláška. Ideální by byl i nějaký kus kódu, kterým jde chyba zreprodukovat, protože se mi to v aktuálním Nette nějak nedaří…

mcmatak
Člen | 504
+
0
-

takže chyba vzniká v šabloně

ve všech verzích NETTE

<?php

final class TestPresenter extends BasePresenter
{


	public function createComponentForm($name)
	{
		$form = new \Nette\Application\AppForm($this, $name);

		$form->addGroup("test");

		$container = $form->addContainer('locales');

		$container->addText('z', "Z");

		unset($form['locales']['z']);

		return $form;
	}


	public function renderDefault()
	{
		$this->setLayout(false);
	}

}

?>

šablona

<?php

{block #content}

{assign form => $control['form']}
{foreach $form->groups as $group}
	{if ($group->controls && $group->getOption('visual'))}
		{foreach $group->controls as $formControl}
			{$formControl->control}
		{/foreach}
	{/if}
{/foreach}

?>

pri unset nedojde k odstranení prvku z formuláře pouze k odstranění monitoringu, takže pri tomto pokusu o vykreslení vypadne tahle chyba

InvalidStateException

Component ‚z‘ is not attached to ‚Nette\Forms\INamingContainer‘.

Editoval mcmatak (11. 8. 2010 23:58)

mcmatak
Člen | 504
+
0
-

asi by si to vlákno zasloužilo změnit název, což nevím jak se dělá, jde spíš o to že unset prvku v containeru, nefunguje? nebo se pletu?

Patrik Votoček
Člen | 2221
+
0
-

mcmatak napsal(a):

asi by si to vlákno zasloužilo změnit název, což nevím jak se dělá

editací prvního postu

mcmatak
Člen | 504
+
0
-

ani to se nepodařilo

bazo
Člen | 620
+
0
-

na toto iste som sa pytal uz aj ja https://forum.nette.org/…bratie-prvku

mcmatak
Člen | 504
+
0
-

jestli se nepletu tak stále nevyřešeno, nic nepomáhá

Panda
Člen | 569
+
0
-

Zkusil jsem to opravit: https://github.com/…cc931f88ff1c.

David Grudl
Nette Core | 8228
+
0
-

V tom vykreslování 20 řádky chyběla část && $control->getForm(FALSE) === $form, doplnil jsem.

Samozřejmě vhodnější by bylo řešení na straně FormGroup jak je udělal Panda, jenže celou dobu přemýšlím, jak se grup zbavit a moc se mi nechce je vylepšovat.

mcmatak
Člen | 504
+
0
-

to je bug, ne vylepšení :)

zbavit se group? a co je nahradí? já na tom mám založené celkem sakra hodně rozsáhlé šablony a není jich málo