Cake PHP中同一个表的多个外键?

Posted

技术标签:

【中文标题】Cake PHP中同一个表的多个外键?【英文标题】:Multiple foreign keys to the same table in Cake PHP? 【发布时间】:2012-07-08 17:16:43 【问题描述】:

Cake 有自己的约定,可以在其模型和它们引用的表之间自动进行某些功能交互。如果外键引用名为 people 的表,则它们应称为 people_id。如何处理一行包含两个人并且需要两个人的外键的情况?很明显,我不能复制列名,有两个 people_id 列。

考虑一个有两个竞争对手的比赛。每个参赛者都由参赛者表格中的一行表示。比赛表需要参考这两个竞争对手。在不破坏 Cake 提供的自动功能的情况下,我怎样才能做到这一点?

【问题讨论】:

我不认为你可以有 2 个同名的列 - people_id - 为什么你认为显然可以? By the looks of it ,用 ORM 做这件事有点不可能。 ActiveRecord 设计模式对此太有限了。地狱.. 恕我直言,制作简单的JOIN 声明甚至都不好,更不用说更复杂的情况了。基本上,您将不得不手动编写查询并检索数据。 我发现这个链接描述了这个过程是如何完成的:book.cakephp.org/1.2/view/851/… 找到这个答案:***.com/questions/11844998/… 【参考方案1】:

我找到了一个链接,描述了如何完美地做到这一点。

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasandbelongstomany-habtm

【讨论】:

以上是关于Cake PHP中同一个表的多个外键?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Django 中同一个表的多个外键来管理删除?

如何使用mysqli php从多个表中输出所有数据

同一个表的两个外键和多个JOIN与WHERE子句

MySQL:多个表的注释

如何更新链接到多个表的 FK - 更新时的级联

如何将多个标志作为 Cake 参数传递?