Сумма по случаям с использованием только Eloquent - PullRequest
0 голосов
/ 14 октября 2018

У меня есть модель под названием Закупки, которая имеет отношение многие ко многим с моделью Продукта.Я создал модель для управления таблицей в соотношении «многие ко многим», которая называется «Покупаемый продукт».Эта модель связана с другой моделью под названием Валюта.

Таблица покупок : Id, номер, create_at, updated_at.
Product_table : Id, описание, созданный_at, updated_at.
Таблица валют: Id, код, имя, соотношение.
Таблица Product_Purchase : Id, идентификатор_покупки, идентификатор_идентификатора, идентификатор_валюты, количество, цена.

User может приобрести несколько Products тогда он может заплатить многими Currencies.Для управления каждой транзакцией я хочу суммировать сумму (количество * цена) по валюте.Я пытался сделать это с помощью метода доступа, но все, что я могу сделать, это суммировать произведение количества на цену без учета валюты.

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

1 Ответ

0 голосов
/ 14 октября 2018

вы можете использовать groupBy

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