2010-04-19 107 views
3

我有一個關於學說ORM M:M的問題。 我建立了一些表像這樣: - 用戶 + ID +姓名 - 集團 + ID +姓名學說多對多

我想通過一個新的表學說鏈接這些表: 在組類:

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

,並在用戶等級:

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

請幫我填補空白。謝謝。 期待儘快收到你的來信。

P/S:對不起,我的英語

回答

0

組:

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

用戶:

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

有一個在http://www.doctrine-project.org/documentation/manual/1_2/en/defining-models#relationships:join-table-associations:many-to-many一些不錯的文檔,這正是服務模型。

基本上這個代碼在用戶表類:

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

指出該組表是相關的,經由用戶組交叉點表。 UserGroup中的「user_id」列是與本地表(User)匹配的鍵,「group_id」是與外部表(Group)匹配的鍵。

在組表類了類似的聲明提供了反向:

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

感謝u人這麼多 – 2010-04-20 10:37:07