有人可以解释为什么我遇到此错误吗?我是第一次使用CollectionType
。使用documentation。这是我尝试使用CollectionType
的地方:
$builder->add('cc', CollectionType::class, [
'required' => false,
'entry_type' => EmailType::class
])
这是我的要求:
{
"email" => "[email protected]",
"description" => "test description",
"subject" => "test",
"cc" => array:1 [
0 => "[email protected]"
]
}
所以我的问题出在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;
我遇到了与您几乎相同的问题,但是您的确切解决方案对我不起作用,但是您使我走上了解决之路,因此给了您+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;
}
));