我正在尝试为以下场景找出合适的关系设置/架构,我想我对关系本身有点不清楚 .
我的型号: Accident
和 People
.
事故可能涉及许多人 . 一个人可能与许多事故有关 .
例如:安倍和鲍勃发生了一起事故 . 安倍可能与多起事故有关 .
我有一个事故表,一个人员表和一个带有相应模式的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 回答
TLDR:
您所描述的是“拥有和属于许多人”的关系(也称为HABTM):
http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasandbelongstomany-habtm
Note / Another option:
另一个选项是HasMany Through,它基本上是HABTM,但是有一个专门用于连接表的模型 . 如果您需要的不仅仅是连接表中的3个字段(id,person_id和accident_id),这可以提供更大的灵活性
Model convention:
如果您正在关注CakePHP Model and Database Conventions,那么"People"模型应该是"Person" .
使用非标准是“好的”,但如果你正在学习Cake,那么你现在最好还是坚持使用它们 .
(查看你的代码,正确使用“Person”作为模型,我假设你在描述中输错了)