Я использую Symfony 3.1, пытаясь прикрепить несколько файлов к форме.
Пока что я могу загружать файлы, создавать сущности и хранить их в базе данных для каждого. Использование OneupUploaderBundle с FineUploader.
Проблема в том, что эти файлы не связаны с остальными данными моей формы.
<?php
namespace AppBundle\EventListener;
use Doctrine\ORM\EntityManager;
use Oneup\UploaderBundle\Event\PostPersistEvent;
use AppBundle\Entity\AppointmentFile;
class AppointmentUploadListener
{
protected $manager;
public function __construct(EntityManager $manager)
{
$this->manager = $manager;
}
public function onUpload(PostPersistEvent $event)
{
dump($event);
die();
$file = $event->getFile();
$object = new AppointmentFile();
$object->setFilename($file->getPathName());
$this->manager->persist($object);
$this->manager->flush();
}
}
Я попытался добавить сериализованную форму в параметры загрузки, но если бы у меня было 3 файла, она бы загружала данные формы 3 раза.
var uploader = new qq.FineUploader({
element: document.getElementById('fine-uploader'),
debug: true,
form: 'newAppointmentForm',
request: {
endpoint: "{{ oneup_uploader_endpoint('appointment') }}",
params: {
appointment: $('#newAppointmentForm').serialize()
},
}
});
Основная цель — сохранить встречу с прикрепленными файлами. Таким образом, объектами являются Appointment (столбцы: данные о назначении и массив массивов файлов) и AppointmentFile (столбцы: id, имя файла и mime / тип).
Любой совет приветствуется.
Задача ещё не решена.
Других решений пока нет …