Upload avec le bundle Vich

Par Manuel Alvarez-Iglisias, il y a 7 ans


Bonjour,

Je suis sous symfony 4.2.0, j'essaye d'utiliser le bundle VichUploader mais lors de l'édition j'obtiens une erreur :

Expected argument of type "string", "NULL" given at property path "image".

Alors que pourtant j'ai vraiment bien suvi toute la configuration je comprends pas :(

Mon Entity :

<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\HttpFoundation\File\File; use Vich\UploaderBundle\Mapping\Annotation as Vich; /** * @ORM\Entity(repositoryClass="App\Repository\WorkRepository") * @Vich\Uploadable() */ class Work { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @Vich\UploadableField(mapping="works_image", fileNameProperty="image") * @var File|null */ private $imageFile; /** * @ORM\Column(type="string", length=255) */ private $title; /** * @ORM\Column(type="string", length=255, nullable=true) */ private $subTitle; /** * @ORM\Column(type="string", length=255) * * @var string|null */ private $image; /** * @ORM\Column(type="datetime") */ private $created_at; /** * @ORM\Column(type="string", length=255, nullable=true) */ private $link; /** * @ORM\Column(type="datetime") */ private $updated_at; public function __construct() { $this->created_at = new \DateTime('now'); } public function setImageFile(?File $image = null): void { $this->imageFile = $image; if (null !== $image) { $this->updated_at = new \DateTime('now'); } } public function getImageFile(): ?File { return $this->imageFile; } public function getId(): ?int { return $this->id; } public function getTitle(): ?string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } public function getSubTitle(): ?string { return $this->subTitle; } public function setSubTitle(?string $subTitle): self { $this->subTitle = $subTitle; return $this; } public function getImage(): ?string { return $this->image; } public function setImage(string $image): self { $this->image = $image; return $this; } public function getCreatedAt(): ?\DateTimeInterface { return $this->created_at; } public function setCreatedAt(\DateTimeInterface $created_at): self { $this->created_at = $created_at; return $this; } public function getLink(): ?string { return $this->link; } public function setLink(?string $link): self { $this->link = $link; return $this; } public function getUpdatedAt(): ?\DateTimeInterface { return $this->updated_at; } public function setUpdatedAt(\DateTimeInterface $updated_at): self { $this->updated_at = $updated_at; return $this; } }

le fichier conf de Vich :

vich_uploader: db_driver: orm mappings: works_image: uri_prefix: /images/works upload_destination: '%kernel.project_dir%/public/images/works' namer: Vich\UploaderBundle\Naming\UniqidNamer

Merci

2 réponses

Lartak, il y a 7 ans

Bonjour.
As-tu pensé à regard si un autre sujet ne traitait pas du même problème que toi ?
Car il se trouve que pour le sujet suivant c'est le cas : Problème upload avec VichBundle.

Manuel Alvarez-Iglisias, il y a 7 ans

Je n'ai pas du tout pensé à regarder... désolé ^^'. Merci pour l'aide :)