2017-03-06 93 views
0

我正在使用Zend Framework 3,並試圖驗證帶有集合字段的窗體。Zend Framework集合驗證

我的形式所具有的領域

$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

我在做什麼錯?

回答

1

我發現錯誤在使用CollectionInputFilter。我應該一直使用ArrayInput