我有3张桌子(公司,服务,参数)。 表格之间的关系如下: 一家公司有很多服务, 服务有很多参数, 服务属于一家公司。 我试图通过params加入公司的服务和服务,并将其作为json返回。
我的代码是:
$query = Companies::find()
->joinWith('services')
->leftJoin('params', '`services`.`id` = `params`.`serviceid`')
->asArray()->all();
return $query;
然而,在json中我获得了公司和服务之间的关系,但服务和参数之间的关系却没有。
任何人都可以帮助我吗? 看起来我错过了一些基本的东西但却无法弄清楚它是什么。 感谢
答案 0 :(得分:0)
您是否也建立了这些模型之间的关系?它使用起来要容易得多,特别是如果你需要在一个以上的地方使用这种关系。
答案 1 :(得分:0)
我找到了解决方案。这是一个嵌套的关系问题,而不是:
$query = Companies::find()
->joinWith('services')
->leftJoin('params', '`services`.`id` = `params`.`serviceid`')
->asArray()->all();
return $query;
查询应如下所示:
$query = Companies::find()
->with('services.params')
->asArray()->all();
return $query;
如果在模型中正确设置,Yii2会自动理解嵌套关系。 感谢此帖Nested relations using `with` in yii2
干杯!