我有一个使用 CakePHP 的锦标赛网站,我需要在其中管理如下详细信息的条件:
两个竞争对手之间会有一场战斗比赛,我需要管理比赛分组和比赛时间表,这里的竞争对手和对手将与竞争对 watch 的外键相同,意味着同一用户将相互对抗,与这种情况不同,我如何将两个相同的字段 (competitor_id) 保存到比赛时间表表中,管理员还可以管理竞争对手的订单,如果某些竞争对手不可用等。
最佳答案
你的问题最后有点困惑,你是想简单地从一个预定的事件和用户(与竞争对手和对手的事件)中创建 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.
关于database - cakephp 同一张表中的两个外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257608/