- GAZDOWN
- Člen | 3
Zdravím,
mám takový problém. Potřebuji si udělat formulář, který dynamicky mění
počet položek, které jsou úplně stejné, jen se liší labelem a jménem.
Udělal jsem to tedy tak, že jsem vytvořil vzor, který dále klonuju.
Problém nastane ve chvíli, kdy chci přiřadit nějaké validační pravidla
(možná i něco jiného, ale tam jsem se ještě nedostal.
Takto napsaný kód běží, tedy do doby, než odkomentuji přidání validačního pravidla. Běh pak končí chybovou hláškou:
Component '' is not attached to ‚Nette\Forms\Form‘
Vůbec mě nenapadá kde bych ještě mohl hledat problém. Důvod takového řešení je ten, že pattern může být prakticky jakýkoliv formulářový prvek. Používám to totiž na více věcí, ne konkrétně a poměrně často.
Edit: Po prozkoumání jsem přišel na to, že problém může hlásit pouze metoda lookup, tak jsem ji zkusil zavolat v presenteru s udávaným typem a vrátila mi korektně objekt formuláře. Ale vykreslení {input name} v šabloně zase zhavaruje. A dále, je jedno, jestli validační pravidlo přidám před klonováním nebo po klonování, výsledek je stejný, ale pokud naklonuji některý z prvků formuláře, přidaných metodou add*, tak vše funguje.
Editoval GAZDOWN (5. 6. 2013 18:45)
- GAZDOWN
- Člen | 3
Procházel jsem debugger, zhavaruje to na $rule->control->getForm()->getTranslator() v metodě Rules formatMessage(). getForm volá jen lookup(‚Nette\Forms\Form‘, TRUE). Zajímavé je, že to zhavaruje po zavolání $form[„name“]->getControl(), ale před tím uvedené $form->lookup(‚Nette…Forms‘, TRUE) projde bez problémů.
Editoval GAZDOWN (5. 6. 2013 19:57)