Я использую 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
вместо.
Других решений пока нет …