Рамочная связь Yii2 с суммой работает неправильно - PullRequest
0 голосов
/ 21 февраля 2020

Возникла проблема при суммировании связанных данных из другой таблицы.

Я создал геттер следующим образом ...

public function getContItems()
{
    return $this->hasMany(ContItems::className(), ['CONTNO' => 'inspQuoteNo'])->sum('LINETOT');
}

Когда я использую это, я получаю следующую ошибку: " frontend \ models \ Quotes не имеет отношения с именем" contItems ". "

Когда я объявляю получатель следующим образом, я не получаю ошибки, но не хочу, чтобы l oop просматривал результаты для суммы, так как это очень медленно:

public function getContItems()
{
    return $this->hasMany(ContItems::className(), ['CONTNO' => 'inspQuoteNo']);
}

Кто-нибудь знает, почему сумма не работает и поступает так, как будто с суммой не объявлено никакого отношения?

Спасибо!

1 Ответ

2 голосов
/ 21 февраля 2020

Проблема в том, что отношение должно возвращать объект \yii\db\ActiveQuery. Если вы добавите ->sum(...) к запросу, он вернет целое число.

Но вы можете использовать запрос, возвращаемый отношением, следующим образом:

$ sum = $ quote-> getContItems () -> sum ('LINETOT');

...