CakePHP关系场景

时间:2014-02-26 14:43:15

标签: php cakephp has-and-belongs-to-many

我正在尝试为以下场景找出合适的关系设置/架构,我想我对关系本身有点不清楚。

我的模特:AccidentPeople

事故可能涉及很多人。一个人可能与许多事故有关。

例如:Abe和Bob发生了一起事故。安倍可能与多起事故有关。

我有一个事故表,一个人员表和一个带有相应模式的accident_people表。我希望用户能够独立于一个人和一个人独立于事故添加事故,然后当他们编辑事故时,将其链接到多个人。这可能吗?

$people = $this->Accident->Person->find('list');  //should give me list of all people
$this->set('people', $people);  //should allow me to access a list of all people in view

1 个答案:

答案 0 :(得分:2)

<强> TLDR:

您所描述的是“拥有和属于许多人”的关系(也称为HABTM):

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


注意/另一个选项:

另一个选项是HasMany Through,它基本上是HABTM,但是有一个专门用于连接表的模型。如果您需要的不仅仅是连接表中的3个字段(id,person_id和accident_id),这样可以提高灵活性


模型惯例:

如果您关注CakePHP Model and Database Conventions,您的“人物”模型应该是“人物”。

使用非标准是“没关系”,但如果你正在学习Cake,那么你现在最好还是坚持使用它们。

(查看你的代码,正确使用“Person”作为模型,我假设你在描述中输错了)