2011-03-10 115 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

相关问题