Cakephp HABTM需要多个连接

时间:2014-09-25 18:35:19

标签: php mysql cakephp

我对Cakephp很新。我让我所有的模特协会工作得很好,但是这个很难过,我找不到任何解决过类似问题的人。这就是..

我有4张桌子:

+-----+-------------------+
| Id  | first_name        |
+-----+-------------------+
|   1 | jim               | 
|   2 | bob               | 
+-------------------------+ 

facility_project_people

+-----+---------------------+-----------+
| Id  | facility_project_id | person_id |
+-----+---------------------+-----------+
|   1 |          5          |     1     |
|   2 |          6          |     1     |
|   3 |          7          |     2     |
+---------------------------+-----------+

facility_projects

+-----+-------------+-----------+-----------+
| Id  | facility_id | project_id|  type_id  |
+-----+-------------+-----------+-----------+
|   1 |       1     |     1     |     1     |
|   2 |       2     |     3     |     2     |
|   3 |       2     |     5     |     3     |
+-------------------+-----------+-----------+

项目

+-----+-------------+
| Id  | name        |
+-----+-------------+
|   1 |  Audit      | 
|   2 |  Inventory  | 
|   3 |  Tax        |
|   4 |  Consulting |
+-------------------+ 

所以我有人可以参与每个设施的许多项目 我试图建立一个模型关联,从Person到他们参与的项目。

MySQL查询类似于:
SELECT p.first_name, pr.name FROM people p left join facility_project_people fpp ON p.id = fpp.person_id left join facility_projects fp ON fpp.facility_project_id = fp.id left join projects pr ON fp.project_id = pr.id

使用hasAndBelongsToMany关联,我了解如何获取facility_projects表。

people

显然这并没有给我我需要的东西

在查看某个人时,我希望看到相关的项目,但我很难知道如何进入项目表。我希望能够为关联添加另一个连接表和外键,但是cakephp似乎不允许这样做。

我很欣赏任何见解。

1 个答案:

答案 0 :(得分:1)

您没有说明您正在使用的cakephp版本。但是,您可以使用“包含”来执行此操作(因为您的模型并非直接相关),如下所示:

C B D A