Hi all,
I'm currently struggling with Zend_Form... I try to build a form that should
include another form as a subform.
This is what I've been doing so far in the init()-method of my form:
$newPersonSubForm=new Zend_Form_SubForm(array(
'legend' => 'Neue Person',
'disableLoadDefaultDecorators' => true,
'disableTranslator' => true,
'decorators' => array(
'FormElements',
array('HtmlTag', array('tag' => 'ol')),
'Fieldset')));
$editForm=new Club_Person_Form_Edit();
$editForm->removeDisplayGroup('buttons');
$newPersonSubForm->addSubForm($editForm, 'newPerson-subform');
$this->addSubForm($newPersonSubForm, 'newPerson');
This works as expected: I get my normal form fields and then I get a
fieldset named 'fieldset-newPerson' from the Zend_Form_Subform under which I
get all my elemts from Club_Person_Form_Edit in array notation e.g.
'newPerson[firstName]'.
The problem is, that the line
$editForm->removeDisplayGroup('buttons');
does not work as expected. My 'Save' button is grouped in a display-group
'buttons' in Club_Person_Form_Edit, so I thought that I could remove those
buttons just by removing the display group to avoid two 'Save' buttons being
rendered.
What am I doing wrong and is this a best practice at all??? Do I have to
remove the elements inside the display-group one by one?
And is there a way to avoid this 'hack' of creating a Zend_Form_SubForm and
add the real form as a subform of this subform and still get the desired
result (array notation of all elements in Club_Person_Form_Edit)?
Thanks a lot and best regards
Stefan