Bonjour la communauté,
Je sèche sur un problème depuis quelques jours.
J'ai une entité photo qui peut être liée soit à une annonce (type de relation ManyToOne), soit à un profil (type de relation OneToOne). Je voudrais que les photos liées aux annonces et celles liées à un profil soient stockées dans des répertoires différents.
Je sais qu'il existe une configuration au niveau du fichier "vich_uploader.yaml", via la définition de mappings. Egalement, je sais que c'est au niveau de la propriété "file" qu'on indique quel mapping il faut utiliser.
Voici ma configuration actuelle :
- dans "vich_uploader.yaml" :
Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 mappings: adverts_photos: uri_prefix: /images/adverts upload_destination: '%kernel.project_dir%/public/images/adverts' namer: Vich\UploaderBundle\Naming\UniqidNamer profiles_photos: uri_prefix: /images/profiles upload_destination: '%kernel.project_dir%/public/images/profiles' namer: Vich\UploaderBundle\Naming\UniqidNamer
- au niveau de mon entité "Photo.php" :
Au niveau de mon entité "Photo", j'ai 2 attributs qui me permettent de distinguer si c'est une photo liée à une annonce ou à un profil :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 /** * @var File|null * @Assert\Image( * mimeTypes="image/jpeg" * ) * @Vich\UploadableField(mapping="adverts_photos", fileNameProperty="name") */ private $file;
Mon but est donc de modifier la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ... /** * @ORM\ManyToOne(targetEntity="App\Entity\advert\Advert", inversedBy="photos") * @ORM\JoinColumn(nullable=true) * * @Assert\Type(type="App\Entity\advert\Advert") * @Assert\Valid() */ private $advert; ... /** * @ORM\OneToOne(targetEntity="App\Entity\User\Profile", mappedBy="photo") */ private $profile; ...en
Code : Sélectionner tout - Visualiser dans une fenêtre à part * @Vich\UploadableField(mapping="adverts_photos", fileNameProperty="name")lorsqu'il s'agit d'une photo liée à un profil.
Code : Sélectionner tout - Visualiser dans une fenêtre à part * @Vich\UploadableField(mapping="profiles_photos", fileNameProperty="name")
Quelqu'un aurait une idée sur la manière de procéder?
Merci d'avance pour votre aide.
Partager