有人可以解释为什么我收到此错误吗?我是第一次使用CollectionType
。已使用documentation。
这是我尝试使用CollectionType
的地方:
$builder->add('cc', CollectionType::class, [
'required' => false,
'entry_type' => EmailType::class
])
这是我的要求:
{
"email" => "test@test.com",
"description" => "test description",
"subject" => "test",
"cc" => array:1 [
0 => "test1@test.com"
]
}
答案 0 :(得分:1)
我遇到了与您几乎相同的问题,但是您的确切解决方案对我不起作用,但是您让我走上了解决之路,因此给了您+1的机会。我想写这个作为评论,但是太长了。这是我必须更改您的解决方案以使其起作用的原因:
$builder->get('myCollection')
->addModelTransformer(new CallbackTransformer(
function ($array) {
return $array;
},
function ($array) {
$res = array();
foreach($array as $item) {
if ($item === null) {
$item = '';
}
$res[] = $item;
}
return $res;
}
));
答案 1 :(得分:0)
所以我的问题出在EmailEntity
是cc
是字符串的地方。我已使用Data Transformers
来解决此问题。刚刚添加:
$builder->get('cc')
->addModelTransformer(new CallbackTransformer(
function ($array) {
return $array;
},
function ($array) {
return json_encode($array);
}
));
别忘了添加use Symfony\Component\Form\CallbackTransformer;