尝试存储多个文件输入的表单时出错。
我有两个实体:Inquiry和UploadedDocumend,它们是一对多的关系。
以下是上传文件的转换器:
public function reverseTransform($uploadedDocuments)
{
$attachments = array();
foreach($uploadedDocuments as $file){
if($file) {
$uploadedDocument = new UploadedDocument();
/* @var $uploadedDocument UploadedDocument */
$uploadedDocument->setFile($file);
$uploadedDocument->setCreatedOn(new \DateTime("now"));
$this->em->persist($uploadedDocument);
$attachments[] = $uploadedDocument;
}
}
return $attachments;
}
这里是添加变换器的代码:
->add($builder->create(
'uploadedDocuments', 'file', [
'required' => false,
'multiple' => true,
'label' => "Anhänge"
]
)->addModelTransformer(new UploadsTransformer($this->em)))
有了这个,我得到以下例外:
表单的视图数据应该是Symfony \ Component \ HttpFoundation \ File \ File类的实例,但是是Doctrine \ Common \ Collections \ ArrayCollection类的实例。您可以通过将“data_class”选项设置为null或通过添加将Doctrine \ Common \ Collections \ ArrayCollection类的实例转换为Symfony \ Component \ HttpFoundation \ File \ File的实例的视图转换器来避免此错误。
我无法改变旋转变压器。因为我需要这样。我想。
public function setDefaultOptions(OptionsResolverInterface $resolver) {
$resolver->setDefaults(array(
'data_class' => 'Lengoo\FormhandlerBundle\Entity\Inquiry',
));
}
如何更改变换器以便正确创建对象? 仅供参考:如果我只是将文件中的路径存储到数组中,它就可以工作。但我想要两个对象之间的关系。