Mam mały kłopot z multiupload plików. Problem to otrzymywany wynik z pola typu file.
Dostaję:
["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(15) "logout-icon.png" ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(9) "image/png" ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(13072) ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> string(14) "/tmp/php9Qqolq" ["fileName":"SplFileInfo":private]=> string(9) "php9Qqolq" } ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(15) "logout-icon.png" ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(9) "image/png" ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(13072) ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> string(14) "/tmp/phpn9jWZ8" ["fileName":"SplFileInfo":private]=> string(9) "phpn9jWZ8" }
a potrzebuję, to w postaci tablicy, każdy obiekt, to odrębna wartość tablicy.
Zacznijmy od klasy entity odpowiedzialnego za wygenerowanie typu pola file.
Entity: AdImages
class AdImage { private $images; public function setImages($images = null) { $this->images = $images; return $this; } public function getImages() { return $this->images; } }
Formularz: AdImageType:
class AdImageType extends AbstractType { $builder ->add('images', 'file') } }
Następnie powyższy formularz AdImageType dołączam do AdType
class AdType extends AbstractType { $builder 'type' => new AdImageType(), 'allow_add' => true, 'allow_delete' => true, 'by_reference' => false, )) }
Entity AdImages jest w relacji n:1 z Ad. Poniżej entity Ad odpowiedzialne za upload.
class Ad { private $adImages; public function __construct() { $this ->adImages = new \Doctrine\Common\Collections\ArrayCollection(); } public function addAdImage(\Zaoferujta\FrontendBundle\Entity\AdImage $adImages) { $this->adImages->add($adImages); $adImages ->setAd($this); return $this; } public function removeAdImage(\Zaoferujta\FrontendBundle\Entity\AdImage $adImages) { $this->adImages->removeElement($adImages); } public function getAdImages() { return $this->adImages; } }
Wszystko wygląda dobrze, tablica plików widnieje w encji podczas zapisu.
["adImages":"Zaoferujta\FrontendBundle\Entity\Ad":private]=> object(Doctrine\Common\Collections\ArrayCollection)#321 (1) { ["_elements":"Doctrine\Common\Collections\ArrayCollection":private]=> [0]=> object(Zaoferujta\FrontendBundle\Entity\AdImage)#568 (5) { ["id":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> NULL ["name":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> NULL ["path":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> } ["ad":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> *RECURSION* ["images":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(15) "logout-icon.png" ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(9) "image/png" ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(13072) ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> string(14) "/tmp/php9Qqolq" ["fileName":"SplFileInfo":private]=> string(9) "php9Qqolq" } } [1]=> object(Zaoferujta\FrontendBundle\Entity\AdImage)#556 (5) { ["id":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> NULL ["name":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> NULL ["path":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> } ["ad":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> *RECURSION* ["images":"Zaoferujta\FrontendBundle\Entity\AdImage":private]=> ["test":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> bool(false) ["originalName":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(15) "logout-icon.png" ["mimeType":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> string(9) "image/png" ["size":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(13072) ["error":"Symfony\Component\HttpFoundation\File\UploadedFile":private]=> int(0) ["pathName":"SplFileInfo":private]=> string(14) "/tmp/phpn9jWZ8" ["fileName":"SplFileInfo":private]=> string(9) "phpn9jWZ8" } } } } }
Proszę o natchnienię
