在 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 以及在用户数组中)。我会再考虑的。