你如何分组子表单

我有4个表单,我想将它们组合在一起,然后将一些装饰器应用于它们。

这是我到目前为止。 w /在每个子表单中,我已经有一些显示组存在

$this->setSubForms(array(
    'sub1'  => $sub1,
    'sub2'  => $sub2,
    'sub3'  => $sub3,
    'sub4'  => $sub4
));

我以为我可以做类似的事情

$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'));

显然这根本不起作用。

我在ZF的文档中找不到任何东西。 如果有其他人遇到了这个窘境,我想我会在这里发布。


所以基本上我已经知道了。

首先创建“空”子表单

$left = new Zend_Form_SubForm();     

那么你在这个“子表单”中添加你想要的子表单,

$left->setSubForms(array(
   'sub1'  => $sub1,
   'sub2'  => $sub2
));

你为你想添加装饰器的其他子表单做同样的事情。

$right = new Zend_Form_SubForm();     

$right->setSubForms(array(
   'sub3'  => $sub3,
   'sub4'  => $sub4
));

然后以原始形式添加这些新的“$ left”和“$ right”子表单

$this->setSubForms(array(
   'left'  => $left,
   'right' => $right
));

您可以将修饰符应用到“$ left”和“$ right”子表单中,只要您认为合适。

因为我想放弃封装在我的内部元素的字段集看起来像这样,你对另一个做同样的事情。

    $left->setDecorators(array(
        'FormElements',
        array('HtmlTag', array('tag' => 'div')),
        ));

谢谢


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

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

上一篇: how do you group subforms

下一篇: Why does this dynamic library loading code work with gcc?