Commit edcb3202 authored by Guillaume Perréal's avatar Guillaume Perréal
Browse files

Gère les collections Doctrine dans FileUploadType.

Showing with 9 additions and 0 deletions
+9 -0
...@@ -10,7 +10,9 @@ namespace Irstea\FileUploadBundle\Form\Type; ...@@ -10,7 +10,9 @@ namespace Irstea\FileUploadBundle\Form\Type;
use Irstea\FileUploadBundle\Controller\UploadController; use Irstea\FileUploadBundle\Controller\UploadController;
use Irstea\FileUploadBundle\Form\DataTranformer\UploadedFileTransformer; use Irstea\FileUploadBundle\Form\DataTranformer\UploadedFileTransformer;
use Irstea\FileUploadBundle\Service\FileManagerInterface; use Irstea\FileUploadBundle\Service\FileManagerInterface;
use Symfony\Bridge\Doctrine\Form\DataTransformer\CollectionToArrayTransformer;
use Symfony\Component\Form\AbstractType; 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\Extension\Csrf\CsrfProvider\CsrfProviderInterface;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormInterface;
...@@ -58,6 +60,12 @@ class FileUploadType extends AbstractType ...@@ -58,6 +60,12 @@ class FileUploadType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder->setCompound(false); $builder->setCompound(false);
if($options['multiple']) {
$builder->addEventSubscriber(new MergeCollectionListener(true, true));
$builder->addViewTransformer(new CollectionToArrayTransformer());
}
$builder->addViewTransformer(new UploadedFileTransformer($this->fileManager, $options['multiple'])); $builder->addViewTransformer(new UploadedFileTransformer($this->fileManager, $options['multiple']));
} }
...@@ -76,6 +84,7 @@ class FileUploadType extends AbstractType ...@@ -76,6 +84,7 @@ class FileUploadType extends AbstractType
public function setDefaultOptions(OptionsResolverInterface $resolver) public function setDefaultOptions(OptionsResolverInterface $resolver)
{ {
$this->setWidgetDefaultOptions($resolver); $this->setWidgetDefaultOptions($resolver);
$resolver->setDefaults(['max_chunk_size' => $this->maxChunkSize ?: 0]); $resolver->setDefaults(['max_chunk_size' => $this->maxChunkSize ?: 0]);
$resolver->setAllowedTypes(['max_chunk_size' => 'int']); $resolver->setAllowedTypes(['max_chunk_size' => 'int']);
} }
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment