„zapouzdreny“ formular pomoci addContainer
- Vitek Jezek
- hledá kolegy | 285
hodilo by se mi (predevsim do slozitejsich aplikaci/modelu), kdyby bylo jedno, zda zavolam $form->onSubmit[] (popr. $form->getValues() etc…), nebo $container->onSubmit[] (kde $container=$form->addContainer(‚neco‘) )
co vam? : )
- Vitek Jezek
- hledá kolegy | 285
OOOH! SLINT! Tak to ti dluzim dalsi pivo!
Edit: Eh, pise me to „Cannot read an undeclared property FormContainer::$form.“ i kdyz jsem na nove revizi : (
Editoval Whitek (19. 4. 2009 23:41)
- romansklenar
- Člen | 655
Aby šlo volat $container->form->onSubmit[]
tak musíš
ten formulář do toho containeru nejdříve přidat, nějak takto asi:
$container->addComponent($form, $form->getName());
Ale to je asi něco jiného než jsi chtěl ne? Navíc by to vyhodilo chybu
(nested form), pokud by ten $container
vznikl jak píšeš:
$container = $form->addContainer('neco')
.
- Vitek Jezek
- hledá kolegy | 285
no moje prvotni idea byla, ze nekde v zanorenych funkcich nahlizim na formular stale stejne (tj davam do nej dalsi polozky, davam na nem setDefaults(), pripojuju k nemu dalsi funkce etc etc…) a on by mel byt odstinen od okoli. Tj melo by mu byt jedno, zda ho nekdo zavola s $form; s $form->addContainer(‚foo‘) ci dokonce s $form->addContainer(‚foo‘)->addContainer(‚foofoo‘);
- David Grudl
- Nette Core | 8218
Whitek napsal(a):
OOOH! SLINT! Tak to ti dluzim dalsi pivo!
Edit: Eh, pise me to „Cannot read an undeclared property FormContainer::$form.“ i kdyz jsem na nove revizi : (
Fakt že jo, doplním to.
- Vitek Jezek
- hledá kolegy | 285
super, zkontroloval jsem a funguje.
Jen si rikam (uz jsme se na tom bavili na posledni brnenske sobote, ale uplne si
nepamatuju, kam jsme dosli : ), zda nejit v abstrakci jeste dal; tj. udelat to
tak, ze ti bude jedno, zda pouzivas objekt $form a nebo objekt $container
($form->addContainer(„foo“)).
To by se me hrozne moc hodilo a libilo! : ) Krasne by se to pak pluginovalo do sebe (nemusel bych hlidat, zda jsem na koreni (mam $form) nebo zda jsem v $container(popr. jak moc zanorenej do nich).
Predevsim jde o to, aby slo
$container->setDefaults(array(„prvek“=>„data“)) misto
$container->form->setDefault(array(„foo“=>array(„prvek“=>„data“))),
protoze nevim jednoduse, jak moc je muj Container zanoreny.
Take by bylo cool, kdyby $container->onSubmit[] vracel handleru POUZE data
zevnitr containeru.
Co myslite?
- Vitek Jezek
- hledá kolegy | 285
nestaci, ty bys pote musel vedet, jak hluboko jsi: napr. pro set default je rozdil, zda pouzivas $form->addContainer(‚foo‘) ci $form->addContainer(‚foo‘)->addContainer(‚bar‘).
- Vitek Jezek
- hledá kolegy | 285
Davide? Pokud si vzpominas na predminulou Posledni sobotu, tak jsem ti to mel pripomenout. Tak tedy cinim.
//povsimenete si dosavadni pravidelnosti tohoto topicu : D
- David Grudl
- Nette Core | 8218
V aktuální verzi už FormContainer přebral velkou část odpovědnosti Form, viz https://forum.nette.org/…te-formularu.
S tím onSubmit je to na delší úvahu, takže zatím podporován není.