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 across 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


也许addDisplayGroup在这种情况下也可以吗?

链接地址: http://www.djcxy.com/p/50914.html

上一篇: 我需要在weka中使用SVM来过滤使用Java的文档

下一篇: 你如何分组子表单