在 Cakephp 3 查询中将包含添加到包含的模型
Add contain to contained models in a Cakephp 3 query
我有三个模型:"Company"
、"Boss_data"
和 "Users"
。 "Company"
table有几个user_ids
,其中一个是指boss(boss_id
)。 "Boss_data"
由 user_id
link 编辑为 "Users"
table。我想做的是建立一个查询,当我得到公司时,我也会得到它的“boss_data”。现在我有这个查询
$query = $this->Companies->find('all')->contain(['Users','Users_supervisor', 'Users_boss']);
这为我提供了一个类似
的结构
Company
[
{company attributes}
user[],
user_supervisor[],
user_boss[]
]
虽然我想要的是
Company
[
{company attributes}
user[],
user_supervisor[],
user_boss
[
boss_data[]
]
]
我试过进行左连接或向查询添加另一个 contain 子句,但似乎这不是正确的方法,因为我没有达到我想要的效果,所以我想知道如何使用 Users
table 作为 link.
获取该数据
如果您已正确设置模型中的所有链接,则以下查询应该会为您提供所需的结果:
$query = $this->Companies->find('all')->contain(['Users','Users_supervisor', 'Users_boss' => ['boss_data']]);
但是您随后两次实现了用户“Supervirsor”和“Boss”(作为 Supervirsor & Boss 以及在用户数组中)。我会再考虑的。
我有三个模型:"Company"
、"Boss_data"
和 "Users"
。 "Company"
table有几个user_ids
,其中一个是指boss(boss_id
)。 "Boss_data"
由 user_id
link 编辑为 "Users"
table。我想做的是建立一个查询,当我得到公司时,我也会得到它的“boss_data”。现在我有这个查询
$query = $this->Companies->find('all')->contain(['Users','Users_supervisor', 'Users_boss']);
这为我提供了一个类似
的结构Company
[
{company attributes}
user[],
user_supervisor[],
user_boss[]
]
虽然我想要的是
Company
[
{company attributes}
user[],
user_supervisor[],
user_boss
[
boss_data[]
]
]
我试过进行左连接或向查询添加另一个 contain 子句,但似乎这不是正确的方法,因为我没有达到我想要的效果,所以我想知道如何使用 Users
table 作为 link.
如果您已正确设置模型中的所有链接,则以下查询应该会为您提供所需的结果:
$query = $this->Companies->find('all')->contain(['Users','Users_supervisor', 'Users_boss' => ['boss_data']]);
但是您随后两次实现了用户“Supervirsor”和“Boss”(作为 Supervirsor & Boss 以及在用户数组中)。我会再考虑的。