使用嵌套集合从Zend \ Form \ Form返回的数据不正确

时间:2013-08-30 15:45:30

标签: php zend-framework zend-framework2 zend-form zend-inputfilter

我和Zend就此问题开了一个ticket,但我希望能早点得到一些帮助。

我有一个带嵌套集合的表单。让我们说我提交给表单的数据在一个集合中有2个项目,带有一个额外的嵌套集合,如下所示:

array(
    array(
        'foo' => 'bazbat',
        'bar' => '12345',
        'baz' => '',
        'nest' => array(
            'foo' => 'foobar',
            'bar' => '111111',
            'baz' => '',
        ),
    ),
    array(
        'foo' => 'batbaz',
        'bar' => '54321',
        'baz' => '',
        'nest' => array(
            'foo' => 'foobat',
            'bar' => '222222',
            'baz' => '',
        ),
    )
);

以上示例工作正常。但是,如果第二个集合没有“嵌套”输入(空集合),则第一个集合中的“嵌套”集合将添加到第二个集合中。

示例:

$form = new \Zend\Form\Form();
$form->setData(array(
    array(
        'foo' => 'bazbat',
        'bar' => '12345',
        'baz' => '',
        'nest' => array(
            'foo' => 'foobar',
            'bar' => '111111',
            'baz' => '',
        ),
    ),
    array(
        'foo' => ' batbaz ',
        'bar' => '54321',
        'baz' => '',
    )
));
$form->isValid();
$data = $form->getData();

$ data看起来像

array(
    array(
        'foo' => 'bazbat',
        'bar' => '12345',
        'baz' => '',
        'nest' => array(
            'foo' => 'foobar',
            'bar' => '111111',
            'baz' => '',
        ),
    ),
    array(
        'foo' => ' batbaz ',
        'bar' => '54321',
        'baz' => '',
        'nest' => array(
            'foo' => 'foobar',
            'bar' => '111111',
            'baz' => '',
        ),
    )
));

我几乎肯定问题是\ Zend \ InputFilter \ CollectionInputFilter,但我找不到一个好的解决方案。

0 个答案:

没有答案