я делал несколько загружаемых файлов на symfony2.8, и я всегда нахожу проблемы, и я всегда получал это: «Ожидаемый аргумент типа« string »,« array »,
это мое сущность /Article.php
<?php namespace RoubBundle\Entity; use Symfony\Component\HttpFoundation\File\File; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\HttpFoundation\File\UploadedFile; /** * Article * * @ORM\Table(name="article") * @ORM\Entity(repositoryClass="RoubBundle\Repository\ArticleRepository") */ class Article { /** * @var int * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\Column(type="string", nullable=true) * * @Assert\File( * maxSize="5242880", * mimeTypes = { * "image/png", * "image/jpeg", * "image/jpg", * "image/gif" * } * ) */ public $image= array(); /** * @ORM\Column(type="string") * @var string */ private $titre; public function getTitre() { return $this->titre; } public function setTitre($titre) { $this->titre = $titre; return $this; } public function getImage() { return $this->image; } public function setImage(array $image) { $this->image = $image; } /** * Get id * * @return integer */ public function getId() { return $this->id; } }
и это мое действие NewAction в моем контроллере /ArticleController.php
public function newAction(Request $request) { $article = new Article(); $form = $this->createForm('RoubBundle\Form\ArticleType', $article); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { if (null !== $article->getImage) { foreach($file as $article->getImage) { /** @var Symfony\Component\HttpFoundation\File\UploadedFile $file */ $file = $article->getImage(); $fileName = md5(uniqid()).'.'.$file->guessExtension(); $file->move( $this->getParameter('images_directory'), $fileName ); array_push($article->getImage(), $fileName); } } $em = $this->getDoctrine()->getManager(); $em->persist($article); $em->flush(); return $this->redirectToRoute('article_show', array('id' => $article->getId())); } return $this->render('RoubBundle:article:new.html.twig', array( 'article' => $article, 'form' => $form->createView(), )); }
это форма /ArticleType.php
public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('titre') ->add('image', 'file', array( 'required' => false, 'data_class' => null, "multiple" => "multiple")) ; }
и я попробую это в моей ветке /new.html.twig
{{ form_start(form) }} {{ form_widget(form.titre) }} </br> {{ form_widget(form.image, { 'attr': { 'multiple': 'multiple' } }) }} </br> <input type="submit" value="Create" /> {{ form_end(form) }}
ребята, я хотел бы, чтобы кто-то мог мне помочь, я действительно очень стесняюсь и благодарю вас.