From edcb3202cb3a2239c06a633473557acfc38e9669 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr> Date: Thu, 22 Jan 2015 17:54:54 +0100 Subject: [PATCH] =?UTF-8?q?G=C3=A8re=20les=20collections=20Doctrine=20dans?= =?UTF-8?q?=20FileUploadType.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Form/Type/FileUploadType.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Form/Type/FileUploadType.php b/Form/Type/FileUploadType.php index d8a52259..21243424 100644 --- a/Form/Type/FileUploadType.php +++ b/Form/Type/FileUploadType.php @@ -10,7 +10,9 @@ namespace Irstea\FileUploadBundle\Form\Type; use Irstea\FileUploadBundle\Controller\UploadController; use Irstea\FileUploadBundle\Form\DataTranformer\UploadedFileTransformer; use Irstea\FileUploadBundle\Service\FileManagerInterface; +use Symfony\Bridge\Doctrine\Form\DataTransformer\CollectionToArrayTransformer; use Symfony\Component\Form\AbstractType; +use Symfony\Component\Form\Extension\Core\EventListener\MergeCollectionListener; use Symfony\Component\Form\Extension\Csrf\CsrfProvider\CsrfProviderInterface; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; @@ -58,6 +60,12 @@ class FileUploadType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options) { $builder->setCompound(false); + + if($options['multiple']) { + $builder->addEventSubscriber(new MergeCollectionListener(true, true)); + $builder->addViewTransformer(new CollectionToArrayTransformer()); + } + $builder->addViewTransformer(new UploadedFileTransformer($this->fileManager, $options['multiple'])); } @@ -76,6 +84,7 @@ class FileUploadType extends AbstractType public function setDefaultOptions(OptionsResolverInterface $resolver) { $this->setWidgetDefaultOptions($resolver); + $resolver->setDefaults(['max_chunk_size' => $this->maxChunkSize ?: 0]); $resolver->setAllowedTypes(['max_chunk_size' => 'int']); } -- GitLab