Piszę aplikację w symfony która daje możliwość uploadu wielu plików na raz. Niestety mam problem z formularzem. Mam następujący kod
Klasa Entity
<?php namespace AppBundle\Entity; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity */ class DiaryContent { /** * @ORM\Column(type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\Column(type="integer") */ protected $author_id; /** * @ORM\Column(type="text") */ protected $title; /** * @ORM\Column(type="text") */ protected $content; /** * @ORM\Column(type="datetime") */ protected $data; /** * @ORM\Column(type="text") */ protected $images; public function __construct() { $this->images = new ArrayCollection(); } /** * @return mixed */ public function getId() { return $this->id; } /** * @param mixed $id */ public function setId($id) { $this->id = $id; } /** * @return mixed */ public function getAuthorId() { return $this->author_id; } /** * @param mixed $author_id */ public function setAuthorId($author_id) { $this->author_id = $author_id; } /** * @return mixed */ public function getTitle() { return $this->title; } /** * @param mixed $title */ public function setTitle($title) { $this->title = $title; } /** * @return mixed */ public function getContent() { return $this->content; } /** * @param mixed $content */ public function setContent($content) { $this->content = $content; } /** * @return mixed */ public function getData() { return $this->data; } /** * @param mixed $data */ public function setData($data) { $this->data = $data; } /** * @return mixed */ public function getImages() { return $this->images; } /** * @param mixed $images */ public function setImages($images) { $this->images = $images; } }
Kod formularza
<?php namespace AppBundle\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\CollectionType; use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; class DiaryContentType extends AbstractType { /** * {@inheritdoc} */ { $builder->add('author_id')->add('title')->add('content')->add('data')->add('images', CollectionType::class, array( )); } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { 'data_class' => 'AppBundle\Entity\DiaryContent' )); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'appbundle_diarycontent'; } }
oraz jego wywołanie w kontrolerze
$diaryContent = new DiaryContent(); $form = $this->createFormBuilder($diaryContent) ->add("title", TextType::class) ->add('content', TextareaType::class) 'required' => false, 'mapped' => false, 'allow_add' => true, ))->getForm(); 'form' => $form->createView(), ));
Problem jest taki, że wyświetlają mi się wszystkie pola formularza, poza tym z CollectionType, jak zmienię na FileType to pokazuje tylko jeden plik. Ma ktoś jakieś sensowne pomysły? Ogólnie chciałbym zrobić formularz do uploadu zdjęć bez limitu, ale mi nie idzie.