如何在窗体上调用getData时排除字段集中的元素?

时间:2017-06-06 09:44:21

标签: php forms zend-framework2

我有一个包含一些元素的字段集和一个按钮。当我提交表单时,我得到一个空值的按钮。如何告诉ZF2不在退货数据中包含该按钮?

//In fieldset

//...other elements

$this->add([
    'name' => 'add-question',
    'type' => 'button',
    'attributes' => [
        'onclick' => 'return add_question(this)',
        'value' => 'Add Add-On',
        'class' => 'add-element text-primary',
    ],
    'options' => [
        'label' => '',
        'label_options' => [
            'disable_html_escape' => true,
        ],
    ],
]);

//In controller
if($this->request->isPost()) {
    $form->setData($this->request->getPost());
    if($form->isValid()) {
        var_dump($form->getData());
        /*
        array (size=12)
            //... other elements
           'add-ons' => array (size=2)
               //... other elements
               'add-question' => null
        */

我知道来自我可以添加验证组,但我不能在字段集中这样做。此外,表单只是一个空表单,其中有一个提交按钮可供重复使用 - 我的所有表单元素都在字段集中。

1 个答案:

答案 0 :(得分:0)

我猜你的Fieldsets扩展了\Zend\Form\Fieldset

如果是: 你不能像现在一样在Fieldsets中设置setValidationGroup,因为它们不是实现\Zend\Form\Form

只要\Zend\Form\Form扩展\Zend\Form\Fieldset,您就可以使用扩展setValidationGroup在所有表单中使用\Form。打破任何事情