Jam*_*Yun 8 zend-framework zend-form zend-form-sub-form
我有4个子表单,我希望将其中的2个组合在一起,然后将一些装饰器应用于它们.
这是我到目前为止所拥有的.在每个子表单中,我已经有一些显示组
$this->setSubForms(array(
'sub1' => $sub1,
'sub2' => $sub2,
'sub3' => $sub3,
'sub4' => $sub4
));
Run Code Online (Sandbox Code Playgroud)
我以为我可以做点什么
$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'));
Run Code Online (Sandbox Code Playgroud)
显然这根本不起作用.
我真的在ZF的文档中找不到任何东西.如果有其他人遇到过这个窘境,我想我会在这里发布.
所以基本上我已经弄清楚了.
首先,你创建"空"子表格
$left = new Zend_Form_SubForm();
Run Code Online (Sandbox Code Playgroud)
然后你在这个"子表单"中添加你想要的子表单
$left->setSubForms(array(
'sub1' => $sub1,
'sub2' => $sub2
));
Run Code Online (Sandbox Code Playgroud)
你为要添加装饰器的其他子表单执行相同的操作.
$right = new Zend_Form_SubForm();
$right->setSubForms(array(
'sub3' => $sub3,
'sub4' => $sub4
));
Run Code Online (Sandbox Code Playgroud)
然后在原始表单中添加这些新的"$ left"和"$ right"子表单
$this->setSubForms(array(
'left' => $left,
'right' => $right
));
Run Code Online (Sandbox Code Playgroud)
然后,您可以根据需要将装饰器应用于"$ left"和"$ right"子表单.
因为我想删除封装我内部元素的字段集看起来像这样,你对另一个做同样的事情.
$left->setDecorators(array(
'FormElements',
array('HtmlTag', array('tag' => 'div')),
));
Run Code Online (Sandbox Code Playgroud)
谢谢
| 归档时间: |
|
| 查看次数: |
2039 次 |
| 最近记录: |