总结模型之间的多重关系

时间:2017-05-04 12:02:46

标签: php yii2 yii2-advanced-app yii2-model

我有3个模特

modelOne(关系一对多)modelTwo(关系一对多)模型三

在第三个模型中有列数字,我创建了第二个和第三个模型之间的关系来汇总列。像这样......

    public function getRelationTwoThree()
        {
            return $this->hasMany(modelThree::className(), ['modelTwo_id' => 'id'])
                        ->sum('m_1 + m_2');
        }

没关系。当我打印第二个模型实例,如 $ modelTwo-> relationTwoThree 时,我得到正确的值。

如何在第一个和第二个模型之间创建relationOneTwo,以总结relationTwoThree的所有值。我知道我可以用foreach循环来解决这个问题,但我想要优雅和更正确的方法。也是为了不减慢请求。

1 个答案:

答案 0 :(得分:0)

我找到的优雅解决方案是 joinWith

public function getRelationOneTwo(){
     return $this->hasMany(modelTwo::className(), ['modelOne_id' => 'id'])
                        ->joinWith('relationTwoThree')
                        ->sum('m_1 + m_2');
}