仅使用口才的案例求和

时间:2018-10-14 13:38:34

标签: laravel eloquent laravel-query-builder

我有一个称为“购买”的模型,该模型与“产品”模型具有多对多关系。我创建了一个模型来管理多对多关系表(称为PurchasedProduct)。该模型与另一个称为Currency的模型有关。

购买表:ID,数字,created_at,updated_at。
产品表:ID,说明,created_at,updated_at。
货币表:ID,代码,名称,比率。
产品购买表:ID,purchase_id,product_id,currency_id,数量,价格。

User可以购买多个Products,然后他可以支付多个Currencies。为了管理每笔交易,我想按货币对总数(数量*价格)求和。 我尝试使用访问器来完成此操作,但是我所能做的就是将数量*价格的乘积加起来而不考虑货币。

public function getTotalAttribute($value)
{
    $transformers = $this->transformers();
    return $transformers->sum(\DB::raw('quantity * price'));
}`

1 个答案:

答案 0 :(得分:1)

您可以使用groupBy

public function getTotalAttribute($value)
{
    $transformers = $this->transformers();
    return $transformers->groupBy('currency_id')
    ->selectRaw('sum(quantity * price) as sum, currency_id')
    ->get();
}