首页 文章

CakePHP关系场景

提问于
浏览
1

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

我的型号: AccidentPeople .

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

例如:安倍和鲍勃发生了一起事故 . 安倍可能与多起事故有关 .

我有一个事故表,一个人员表和一个带有相应模式的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 回答

  • 2

    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”作为模型,我假设你在描述中输错了)

相关问题