Я часами пытался получить это, но мог бы помочь.У меня есть следующие 2 запроса, которые суммируют столбцы в одной и той же модели, но для одной из сумм требуется условие where.
В SQL я думаю, что это будет относительно простой подвыбор, но я не могу заставить его работать вeloquent.
public function receivedContents() : Collection
{
return $this->stockMovements()
->with('product')
->groupBy('product_id')
->where(function($query){
$query->where('action', 'receive')->orWhere('action', 'void_receive');
})
->get([DB::raw('SUM(received) as received_qty'), 'product_id']);
}
public function liveContents() : Collection
{
return $this->stockMovements()
->with('product')
->groupBy('product_id')
->get([DB::raw('SUM(received) + SUM(processed) as live_qty'), 'product_id']);
}
Я ищу результат с:
- product_id
- receive_qty (сумма полученных, когда действие получено или void_received)
- live_qty (простая сумма или полученные + обработанные столбцы)
В идеале я хочу сохранить это в красноречивой коллекции, чтобы по-прежнему иметь доступ к отношениям моделей.
Любойпомощь будет высоко ценится!