[2009-08-04] addTracker() a Form

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
David Grudl
Nette Core | 8138
+
0
-

Poznámka se týká jen Form, neplatí pro AppForm.

Měl jsem za to, že když vytvoříte pojmenovaný formulář (např. $form = new Form('jmeno')) získá automaticky tzv. tracker, což je skryté políčko sloužící k odlišení více formulářů na stránce. Nebylo tomu tak a tracker bylo nutno přidávat ručeně $form->addTracker('jmeno'). Bez něj nemohlo dobře fungovat používání více formulářů na jedné stránce.

Od revize 473 jsem tento nedostatek napravil, nicméně přidání více trackerů vyvolá výjimku. Pokud tedy vytvoříte pojmenovaný formulář a poté do něj vložíte tracker, vyhodí se výjimka InvalidStateException: Component with name ‚_form_‘ already exists

Řešením je prostě příkaz addTracker(...) smazat a vše bude fungovat. Sorry za BC break.