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

Doctrine2 PHP Discussion :

Problème : Relation OneToMany/ManyToOne bidirectionnelle


Sujet :

Doctrine2 PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut Problème : Relation OneToMany/ManyToOne bidirectionnelle
    Bonjour à tous et merci d'avance pour votre aide,

    J'essaye de mettre en place une relation OneToMany/ManyToOne avec Doctrine2 (& Symfony2) mais impossible d'y parvenir !

    Voici mes deux classes : User (qui étant FOSUser) et Collection qui représente une collection de vidéos. Un utilisateur pour avoir plusieurs collections, mais une collection n'appartient qu'à un seul utilisateur.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    /* COLLECTION */
    namespace Com\ComBundle\Entity;
     
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
     
    /**
     * Com\ComBundle\Entity\Collection
     *
     * @ORM\Table(name="collection")
     * @ORM\HasLifecycleCallbacks
     */
    class Collection
    {
        /**
         * @var integer $id
         *
         * @ORM\Column(name="id", type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
     
        /**
         * @ORM\ManyToOne(targetEntity="Com\UserBundle\Entity\User", inversedBy="collections")
         * @ORM\JoinColumn(nullable=false)
         */
        private $user;
     
        /**
         * Set user
         *
         * @param Com\UserBundle\Entity\User $user
         * @return Collection
         */
        public function setUser(\Com\UserBundle\Entity\User $user) {
            $this->user = $user;
            return $this;
        }
     
        /**
         * Get user
         *
         * @return Com\UserBundle\Entity\User User 
         */
        public function getUser() {
            return $this->user;
        }
     
    }
    And user,

    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
        /* USER */    
    namespace Com\UserBundle\Entity;
     
    use FOS\UserBundle\Entity\User as BaseUser;
    use Doctrine\ORM\Mapping as ORM;
    use Symfony\Component\Validator\Constraints as Assert;
     
     
    /**
     * @ORM\Entity
     * @ORM\Table(name="user")
     */
    class User extends BaseUser
    {
        /**
         * @ORM\Id
         * @ORM\Column(type="integer")
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        protected $id;
     
        /* 
         * @ORM\OneToMany(targetEntity="Com\ComBundle\Entity\Collection", mappedBy="user")
         */
        private $collections;
     
     
        public function __construct()
        {
            parent::__construct();
            $this->collections = \Doctrine\Common\Collections\ArrayCollection();
        }       
    }
    Quand j'utilise la commande doctrine:generate:entities sur la classe User, elle ne génère par les méthodes relatives à $collection (get/add/remove), et même si je les écris moi-même, elles ne fonctionnent pas : getCollections() { return $this->collections; } renvoie NULL par exemple.

    Qu'est-ce qui cloche dans ce code ?

    Merci pour l'aide !!

  2. #2
    Candidat au Club
    Inscrit en
    Août 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2012
    Messages : 2
    Par défaut
    C'était très bête en fait,
    il manquait une étoile et l'annotation était donc ignorée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    /**
    * @ORM\OneToMany(targetEntity="Com\ComBundle\Entity\Collection", mappedBy="user")
    */
    private $collections;

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

Discussions similaires

  1. [2.x] [Symfony2] PB Relation ManyToOne bidirectionnelle
    Par philodido dans le forum Symfony
    Réponses: 6
    Dernier message: 12/06/2013, 19h29
  2. Réponses: 0
    Dernier message: 31/08/2011, 12h27
  3. [Relation]Problème mapping OneToMany
    Par Molos dans le forum Doctrine2
    Réponses: 6
    Dernier message: 10/08/2011, 04h57
  4. Problème suppression @OneToMany< -> @ManyToOne
    Par Invité dans le forum Persistance des données
    Réponses: 0
    Dernier message: 30/06/2010, 23h18
  5. Réponses: 7
    Dernier message: 21/01/2007, 12h12

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