我有3个模特
modelOne(关系一对多)modelTwo(关系一对多)模型三
在第三个模型中有列数字,我创建了第二个和第三个模型之间的关系来汇总列。像这样......
public function getRelationTwoThree()
{
return $this->hasMany(modelThree::className(), ['modelTwo_id' => 'id'])
->sum('m_1 + m_2');
}
没关系。当我打印第二个模型实例,如 $ modelTwo-> relationTwoThree 时,我得到正确的值。
如何在第一个和第二个模型之间创建relationOneTwo,以总结relationTwoThree的所有值。我知道我可以用foreach循环来解决这个问题,但我想要优雅和更正确的方法。也是为了不减慢请求。
答案 0 :(得分:0)
我找到的优雅解决方案是 joinWith
public function getRelationOneTwo(){
return $this->hasMany(modelTwo::className(), ['modelOne_id' => 'id'])
->joinWith('relationTwoThree')
->sum('m_1 + m_2');
}