Symfony 集合字段类型中类型为“数组或(\Traversable 和 \ArrayAccess)的预期参数

Expected argument of type "array or (\Traversable and \ArrayAccess) in Symfony collection field type

我收到消息:

Expected argument of type "array or (\Traversable and \ArrayAccess)", "string" given

在这段代码的执行过程中:

$form = $this->createFormBuilder([], ['csrf_protection' => false])
   ->add('collectionField', 'collection', [
       'type' => 'text', 
       'constraints' => [new Type('array')]]
    )
   ->add('integerField', 'integer', [
       'constraints' => [new Type('integer')]]
   )
   ->getForm();

$form->submit(['collectionField' => 'error', 'integerField' => 'error']);

这是因为我将字符串数据传递给 "collectionField" 字段。

但是当我将数组传递给 "integerField" 时:

$form->submit(['collectionField' => [], 'integerField' => []]);

我收到一条正常消息 "This value is not valid."。

我认为行为应该是一样的。当然,我可以做一些工作并找到一些解决方案,但我很想知道这是一个错误还是我错过了什么。

好的。自己回答我的问题。这是一个错误,将在最近的 Symfony 版本中修复。 https://github.com/symfony/symfony/pull/13851