Nevalidni formular a invalidate na komponentu ve ktere se nachazi
- Vladik_hk
- Člen | 50
Ahoj,
mam formular zpracovany jako komponentu. Pokud je formular odeslany, volam ve fci, ktera odeslani zachycuje $this->invalidateControl(‚jmenoKomponentyFromulare‘); a vse funguje jak ma – vygeneruje se html formulare a vrati jako snippet.
Problem je, pokud je formular nevalidni, v takovem pripade se vubec do te fce, ktera zpracovava formular po odeslani nedostanu, nezavola se $this->invalidateControl(‚jmenoKomponentyFromulare‘) a dojde k chybe pri vytvoreni html snippetu. Jak toto tedy resit, kam umistit to $this->invalidateControl(‚jmenoKomponentyFromulare‘) aby se to volalo i v pripade nevalidniho formulare?
Napadlo me dat do konstrukotu komponenty formulare: if ( $this->getPresenter()->isAjax() ) { $this->invalidateControl(‚signIn‘); }, ale to by znamenalo, ze se komponenta znevalidni a zbytecne generuje i v pripade, kdy se v ni nic nezmeni jen prozo, ze je volana z nejake sablony. Coz trochu potira smysl tech invalidaci celkove.
Diky.V.
- jtousek
- Člen | 951
Co takhle použít událost $onInvalidSubmit
?
// psáno narychlo takže je to spíše nástřel...
function createComponentForm() {
//...
$form->onInvalidSubmit[] = function () use ($form) {
$form->getPresenter()->invalidateControl($form->getName());
};
return $form;
}
Editoval jtousek (17. 4. 2011 23:06)