Zend Framework 集合验证

Zend Framework collection validation

我正在使用 Zend Framework 3,我正在尝试验证带有集合字段的表单。

我的表单有一个字段

$this->add([
    'name' => 'domains',
    'options' => [
        'target_element' => [
            'type' => Text::class
        ]
    ],
    'type' => Collection::class
]);

当我提交表单时,我得到了这样的东西作为 POST 数据

[
    'domains' => [
        0 => 'first'
        1 => 'second'
    ]
]

我正在尝试使用如下所示的 CollectionInputFilter 来验证这一点

$filter = new InputFilter();
$filter->add([
    'type' => CollectionInputFilter::class,
    'options' => [
        'input_filter' => [
            'validators' => [
                [
                    'name' => Hostname::class
                ]
            ]
        ]
    ]
], 'domains');

$filter->setData($data);

但我得到了异常 Zend\InputFilter\CollectionInputFilter::setData expects each item in a collection to be an array or Traversable; invalid item in collection of type string detected

我做错了什么?

我发现错误是在使用 CollectionInputFilter 时。我应该一直使用 ArrayInput 来代替。