Php Symfony2:将ArrayCollection转换为文件
尝试存储具有多个文件输入的表单时出错 我有两个实体:Inquiry和uploadedDocMend,它们是一对多关系 以下是上传文件的转换器:Php Symfony2:将ArrayCollection转换为文件,php,file,symfony,doctrine-orm,arraycollection,Php,File,Symfony,Doctrine Orm,Arraycollection,尝试存储具有多个文件输入的表单时出错 我有两个实体:Inquiry和uploadedDocMend,它们是一对多关系 以下是上传文件的转换器: public function reverseTransform($uploadedDocuments) { $attachments = array(); foreach($uploadedDocuments as $file){ if($file) { $uploadedDocument = n
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类的实例,但却是doctor\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',
));
}
如何更改转换器以正确创建对象?
仅供参考:如果我只存储从文件到数组的路径,它就可以工作。但我想知道这两个物体之间的关系