1

我已经向 Zend 开了一张关于这个问题的,但我希望能尽快得到一些帮助。

我有一个带有嵌套集合的表单。假设我提交给表单的数据在一个集合中有 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 上,但我一直没能找到好的解决方案。

4

0 回答 0