尝试对另一个表中的相关数据求和时出现问题。
我创建了如下的吸气剂...
public function getContItems()
{
return $this->hasMany(ContItems::className(), ['CONTNO' => 'inspQuoteNo'])->sum('LINETOT');
}
当我使用它时,出现以下错误:“ frontend \ models \ Quotes没有名为” contItems“的关系。”
当我按照以下方式声明getter时,我没有收到任何错误,但是不想循环求和的结果,因为这样做很慢:
public function getContItems()
{
return $this->hasMany(ContItems::className(), ['CONTNO' => 'inspQuoteNo']);
}
没有人知道为什么总和不起作用并且好像没有与总和声明任何关系吗?
谢谢!
问题是关系应返回对象\yii\db\ActiveQuery
。如果在查询后附加->sum(...)
,它将返回一个整数。
但是您可以使用关系返回的查询,如下所示:
$ sum = $ quote-> getContItems()-> sum('LINETOT');