複数のファイルをフォームに添付しようとして Symfony 3.1 を使用しています。
これまでのところ、ファイルをアップロードし、エンティティを作成して、それぞれをデータベースに保存できます。FineUploader で OneupUploaderBundle を使用します。
問題は、これらのファイルが残りのフォーム データに添付されていないことです。
<?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 (列: 予定データとファイルの arraycollection) と AppointmentFile (列: id、filename、および mime/type) です。
どんなアドバイスでも大歓迎です。