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

Symfony PHP Discussion :

Lien entre des photos et une annonce


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Billets dans le blog
    1
    Par défaut Lien entre des photos et une annonce
    Bonjour à tous !

    J'aimerai lier a une classe Annonce une classe Photo sur Symfony 3.0. Explications !

    Lorsque je créé ou édite une annonce, j'aimerai que celle-ci puisse contenir une ou plusieurs photos.
    Ainsi, j'aimerai connaître quelle est la / les meilleure(s) solution(s) qui s'offre à moi.

    A noter que j'ai déjà tenter de mettre dans le formulaire de l'annonce une collection de photos sans grand succès.

    Merci d'avance !

  2. #2
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    annonce OneToMany ---------------------------------------- photo
    photo ManytoOne ------------------------------------------- Annonce

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Billets dans le blog
    1
    Par défaut
    Tout d'abord merci à toi de m'aider.

    Voilà ce que je viens de faire :

    Du côté de l'annonce :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
      /**    
         * @ORM\OneToMany(targetEntity="adres\GestionBundle\Entity\Photo", mappedBy="annonce")
         *
         * 
         */
     
        private $photos;
     
      /**
         * Add photos
         *
         * @param \Adres\GestionBundle\Entity\Photo $photos
         * @return Annonce
         */
        public function addPhoto(\Adres\GestionBundle\Entity\Photo $photos)
        {
            if($photos->getExtension() ==  null)
                return;
            $this->photos[] = $photos;
     
     
            return $this;
        }
     
      /**
         * Get photos
         *
         * @return \Adres\GestionBundle\Entity\Photo
         */
        public function getPhotos()
        {
            return $this->photos;
     
        }
    Et du côté de la photo :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
      /**
         * @ORM\ManyToOne(targetEntity="adres\GestionBundle\Entity\Annonce", inversedBy="photos")
         * 
         */
        private $annonce;
     
    /**
        * set Annonce
        * @param Annonce $annonce
        */
        public function setAnnonce(Annonce $annonce)
        {
            $this->annonce = $annonce;
        }
     
        /**
        * getAnnonce
        * @return Annonce $annonce
        */
        public function getAnnonce()
        {
            return $this->annonce;
        }
    Cela semble cohérent ?

  4. #4
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    dans l'annonce il manque le __construct qui initialise la collection photo.

    voir relation ManyToOne bidirectionnel

    pourquoi bidirectionnel, as toi de voir ?
    à partir de l'annonce tu récupères les photos
    et à partir de photo tu récupère son annonce

    donc bidirectionnelle ! mais peut être tu n'as pas besoin du 2ème cas si c'est le cas c'est une relation manytoOne simple

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Billets dans le blog
    1
    Par défaut
    En effet, il me manque le construct. Le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function __construct() {
     
     
            $this->photos = new \Doctrine\Common\Collections\ArrayCollection();
     
    }
    Seulement, j'ai un problème lors de l'appel de la fonction addPhoto. Un array est passé en paramètre à cette fonction (je suppose l'array qui contient les photos de l'annonce) mais la fonction s'attend à recevoir une photo et non pas un array de photo.

    Cela viendrait-il du controller lorsque je "persist" l'annonce ?

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    non pas un array

    addPhoto a en parametre une photo et non un array de photo

Discussions similaires

  1. [AC-2007] Faire des liens entre les champs d'une table.
    Par maxime42 dans le forum Access
    Réponses: 3
    Dernier message: 26/04/2011, 22h23
  2. [Toutes versions] wss 3 , lien entre des formulaires et une BDD
    Par me_yassine dans le forum SharePoint
    Réponses: 1
    Dernier message: 02/03/2010, 13h59
  3. Liens entre des classes héritées
    Par qwiqwi dans le forum C++
    Réponses: 12
    Dernier message: 09/02/2006, 15h36
  4. Liens entre des bases Access
    Par Zorg44 dans le forum Access
    Réponses: 2
    Dernier message: 17/11/2005, 00h54
  5. |VB6] Comment Lister les liens vers des fichiers d'une page web
    Par Mayti4 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 18/01/2005, 18h17

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