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 :

ManyToOne/OneToMany


Sujet :

Doctrine2 PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut ManyToOne/OneToMany
    Bonjour a tous!

    Le probleme semble simple, mais en plus de le resoudre, je souhaiterai le comprendre.

    Depuis le Symfony 2 Book, j'essaie de faire correspondre des Events a des Category (deux entites donc). Un objet Category peut donc etre 'linke' sur plusieurs objets Events (et inversement)... d'apres le Book :

    http://symfony.com/doc/2.0/book/doct...pping-metadata

    je procede ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    class Category
    {
    	/**
         * @ORM\OneToMany(targetEntity="Event", mappedBy="category")
         */
        protected $events;
     
        public function __construct()
        {
            $this->events = new ArrayCollection();
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class Event
    {
    	/**
         * @ORM\ManyToOne(targetEntity="Category", inversedBy="events")
         * @ORM\JoinColumn(name="category_id", referencedColumnName="id")
         */
         */
        protected $category;
    je regenere mes entites et force la generation de mes tables (je les supprime meme de ma base pour etre certain que rien ne traine)

    j'arrive a creer N objet Category mais lorsque je veux creer deux objet Event ayant la meme reference 'category_id' j'obtiens une violation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'UNIQ_FA6F25A312469DE2'
    Du coup, je regarde ma table Event, et je vois que Symfony2 (ou Doctrine2) m'a cree automatiquement un index unique sur ma colonne 'category_id' fraichement cree par l'ORM. Il m'est donc impossible d'associer N objets Event a 1 objet Category.

    Ou est ce que j'ai manque quelque chose?

    Merci aux lecteurs (et encore plus a ceux qui me repondront)

    PS: desole pour les accents... je n'en ai pas!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Voila j'ai trouve la solution!

    En fait ce que je faisais etait bon, le probleme venait du fait qu'avant je passais par le YAML et non pas les annotations. Dans mon ancien fichier .orm de l.entite Event il y avait une vieille relation oneToOne qui trainait...

    tout ce temps perdu...

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

Discussions similaires

  1. [symfony2] manytoone onetomany
    Par altair8080 dans le forum Doctrine2
    Réponses: 1
    Dernier message: 25/04/2012, 11h17
  2. ManyToOne/OneToMany via table d'intersection (JoinTable)
    Par kalash_jako dans le forum Doctrine2
    Réponses: 1
    Dernier message: 10/09/2011, 13h36
  3. OneToMany ManyToOne - Pere/fils - Suppression du Set
    Par RhumRom dans le forum Hibernate
    Réponses: 4
    Dernier message: 03/08/2010, 20h04
  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: 1
    Dernier message: 02/09/2009, 09h22

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