IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plugins PHP Discussion :

VichUploaderBundle mapping dépendant de l'entité parente [4.x]


Sujet :

Plugins PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut VichUploaderBundle mapping dépendant de l'entité parente
    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" :

    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;
    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
    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;
    ...
    Mon but est donc de modifier la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    * @Vich\UploadableField(mapping="adverts_photos", fileNameProperty="name")
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    * @Vich\UploadableField(mapping="profiles_photos", fileNameProperty="name")
    lorsqu'il s'agit d'une photo liée à un profil.

    Quelqu'un aurait une idée sur la manière de procéder?

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Problème résolu avec un DirectoryNamer personnalisé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 30/11/2016, 19h14
  2. [2.x] [Symfony2][VichUploaderBundle] Mapping not found for field
    Par crazy_inf dans le forum Symfony
    Réponses: 1
    Dernier message: 04/01/2015, 15h08
  3. Réponses: 4
    Dernier message: 17/05/2013, 14h18
  4. [2.x] Formulaires imbriqués, recup entité parente
    Par symfony_dev dans le forum Symfony
    Réponses: 14
    Dernier message: 24/04/2012, 19h12
  5. [mapping subclass dans la classe parent]
    Par mamata dans le forum Hibernate
    Réponses: 1
    Dernier message: 11/07/2007, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo