2011-03-10 117 views
4

我有一個比賽網站,CakePHP的,在這裏我需要管理一樣詳情如下條件:CakePHP的兩個外鍵在同一表

會有之間的鬥爭競爭兩種競爭的,我需要管理一個匹配師和比賽時間表,這裏的競爭對手和對手將是相同的從競爭對手的表的外鍵,意味着相同的用戶會相互反對,比在這種情況下,我怎麼能保存兩個相同的領域(competitor_id)到比賽時間表的表爲和管理員也可以管理,競爭對手的訂單,如果某些競爭對手不可用等

回答

6

你的問題有點混淆到最後,你是否試圖簡單地創建從預定的活動和用戶中吃了2個關係(與競爭對手和對手的事件)?如果是這樣,可以通過使用外鍵擴展您的日程安排模型中的關係來實現。

你可以這樣說的:

var $hasMany = array('Competitor'); 

您可以展開和設置外鍵和表名:

var $hasMany = array(
'Competitor' => array(
     'className' => 'Competitor', 
     'foreignKey' => 'competitor_id' 
    ), 
'Opponent' => array(
     'className' => 'Competitor', 
     'foreignKey' => 'opponent_id' 
    ) 
); 

這將設置2間的關係,以相同的模式,您可以單獨保存。 Further reading.

+0

嘿,對於混淆的詞語感到抱歉,但我的意思是說,競爭對手和對手不是單獨的東西,兩者都只是競爭對手,但我想管理他們,一個是競爭對手,一個是對手,希望這清楚你更多.. – 2011-03-10 10:11:43

+0

很酷,那麼我的答案應該沒問題:)競爭對手和對手將來自同一個表,但具有不同的外鍵。 – Dunhamzzz 2011-03-10 11:14:51

+1

這稱爲別名:)應該可以幫助你,如果你想搜索更多。 – dogmatic69 2011-03-10 19:40:32

相關問題