我对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似乎不允许这样做。
我很欣赏任何见解。
答案 0 :(得分:1)
您没有说明您正在使用的cakephp版本。但是,您可以使用“包含”来执行此操作(因为您的模型并非直接相关),如下所示:
C B D A