Php 从带有嵌套集合的Zend\Form\Form返回的数据不正确

Php 从带有嵌套集合的Zend\Form\Form返回的数据不正确,php,zend-framework,zend-framework2,zend-form,zend-inputfilter,Php,Zend Framework,Zend Framework2,Zend Form,Zend Inputfilter,我已经就这个问题与Zend进行了讨论,但我希望能尽快得到一些帮助 我有一个嵌套集合的表单。假设我提交给表单的数据在一个集合中有两个项,其中包含一个额外的嵌套集合,如下所示: array( array( 'foo' => 'bazbat', 'bar' => '12345', 'baz' => '', 'nest' => array( 'foo' => 'foobar',

我已经就这个问题与Zend进行了讨论,但我希望能尽快得到一些帮助

我有一个嵌套集合的表单。假设我提交给表单的数据在一个集合中有两个项,其中包含一个额外的嵌套集合,如下所示:

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上,但我还没有找到好的解决方案