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
我收到消息:
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