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
来代替。
我正在使用 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
来代替。