how do you group subforms
i have 4 subforms in a form i would like to group 2 of them together, and then apply some decorators to them.
here is what i have so far. w/in each subform i already have some display groups present
$this->setSubForms(array(
'sub1' => $sub1,
'sub2' => $sub2,
'sub3' => $sub3,
'sub4' => $sub4
));
i thought i could do something like
$set1 = $this->setSubFormDecorators(array(
'sub1' => $sub1,
'sub2' => $sub2
));
$set1->setDecorator(array('something here'));
$set2 = $this->setSubFormDecorators(array(
'sub3' => $sub3,
'sub4' => $sub4
));
$set2->setDecorator(array('something here'));
obviously this doesn't work at all.
I really couldn't find anything in ZF's documentation. I thought i post it here if anyone else has run a开发者_开发技巧cross this quandary.
so basically i've figured it out.
first off you create "empty" subforms
$left = new Zend_Form_SubForm();
then you add the subforms you want inside of this "subform"
$left->setSubForms(array(
'sub1' => $sub1,
'sub2' => $sub2
));
you do the same thing for the other subform you want to add decorators to.
$right = new Zend_Form_SubForm();
$right->setSubForms(array(
'sub3' => $sub3,
'sub4' => $sub4
));
then to your original form you add these new "$left" and "$right" subforms
$this->setSubForms(array(
'left' => $left,
'right' => $right
));
you can then apply decorators to the "$left" and "$right" subforms as you see fit.
since i want to drop the fieldsets that encapsulate the elements inside mine looks like this, you do the same to the other one.
$left->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'div')),
));
Thanks
Maybe addDisplayGroup
will be fine in this case too?
精彩评论