Ajout des images en base de donnee

Par Levy Stephane, il y a 3 ans


Salut j'essai de creer un formulaire pour ajouter un produit en base de données mais je stagne au niveau de
la création du champ d'uploading du fichier image.

Le champs

->add('images', FileType::class, [ 'required' => false, 'label' => 'Image:Format(JPEG, PNG, ou GIF)', 'attr'=>[ 'class'=>'uploadArticleImg', ], 'constraints' => [ new NotBlank([ 'message'=>'Importez une image' ]), new File([ 'maxSize' => '5M', 'mimeTypes' => [ 'image/jpeg', 'image/png', 'image/gif', ], 'mimeTypesMessage' => 'Le format de cette image n\'est pas autorisé', 'maxSizeMessage' => 'L\'image est trop volumineuse. Limite:{{ limit }}', ]), ], ])

La configuration

public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => Products::class, ]); }

L'antité Product

#[ORM\OneToMany(mappedBy: 'products', targetEntity: Images::class, orphanRemoval: true)] private Collection $images; public function __construct() { $this->images = new ArrayCollection(); } * * * /** * @return Collection<int, Images> */ public function getImages(): Collection { return $this->images; } public function addImage(Images $image): self { if (!$this->images->contains($image)) { $this->images->add($image); $image->setProducts($this); } return $this; } public function removeImage(Images $image): self { if ($this->images->removeElement($image)) { // set the owning side to null (unless already changed) if ($image->getProducts() === $this) { $image->setProducts(null); } } return $this; }

Ce que je veux
Ce souhaite ajouter ce champ image du produit en meme temps que toutes
les informations liées à ce produit via l'antité Products

Ce que j'obtiens

The form's view data is expected to be a "Symfony\Component\HttpFoundation\File\File", but it is a "Doctrine\Common\Collections\ArrayCollection". You can avoid this error by setting the "data_class" option to null or by adding a view transformer that transforms "Doctrine\Common\Collections\ArrayCollection" to an instance of "Symfony\Component\HttpFoundation\File\File".

2 réponses

Levy Stephane, il y a 3 ans

Merci beaucoup frere Nathe