2010-04-19 7 views
3

J'ai une question à propos de Doctrine ORM M: M. Je construit des tables comme ceci: -User + id + Nom + -Groupe id + NomDoctrine Many to Many

Je veux relier ces table via une nouvelle table avec la doctrine: En classe groupe:

$this->hasMany('User as Users', array(
      // I'm wondering what I can fill here 
      'refClass' => 'UserGroup' 
     )); 

et dans la classe User:

$this->hasMany('Group as Groups', array(
       // I'm wondering what I can fill here 
       'refClass' => 'UserGroup' 
      )); 

S'il vous plaît me aider à combler le vide. Merci. Au plaisir d'avoir de vos nouvelles bientôt.

P/S: Désolé pour mon anglais

Répondre

0

Groupe:

$this->hasMany('User as Users', array(
    'refClass' => 'UserGroup', 
    'local' => 'group_id', 
    'foreign' => 'user_id'); 

utilisateur:

$this->hasMany('Group as Groups', array(
    'refClass' => 'UserGroup', 
    'local' => 'user_id', 
    'foreign' => 'group_id'); 
1

Il y a une bonne documentation pour cela à http://www.doctrine-project.org/documentation/manual/1_2/en/defining-models#relationships:join-table-associations:many-to-many service exactement votre modèle.

Fondamentalement ce code dans la classe de table utilisateur:

$this->hasMany('Group as Groups', array(
       'local' => 'user_id', 
       'foreign' => 'group_id', 
       'refClass' => 'UserGroup' 
      ) 
     ); 

indique que la table est liée Groupe, via la table d'intersection UserGroup. La colonne "user_id" dans UserGroup est la clé qui correspond à la table locale (User) et "group_id" est la clé qui correspond à la table étrangère (Group).

Une déclaration similaire dans la classe de table Group propose l'inverse:

$this->hasMany('User', array(
       'foreign' => 'user_id', 
       'local' => 'group_id', 
       'refClass' => 'UserGroup' 
      ) 
     ); 
+0

merci les gars u tellement –