Symfony2: преобразовать ArrayCollection в файл

Я получаю сообщение об ошибке при попытке сохранить форму с несколькими файлами ввода.

У меня есть две сущности: 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',
));
}

Как мне изменить трансформатор, чтобы объект был создан правильно?
К вашему сведению: это работает, если я просто сохраню путь от файла к массиву. Но я хочу отношения между двумя объектами.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector