使用预先加载将原始SQL查询转换为Laravel Eloquent

时间:2019-01-21 20:45:53

标签: laravel laravel-5 eloquent laravel-query-builder

我很难将以下查询转换为雄辩的查询。

with SingleTickerProviderStateMixin

这就是我所拥有的,但是结果集不正确...

SELECT Sum(t.amount) AS amount, 
       m.name 
FROM   transactionsv2 t 
       JOIN channels c 
         ON t.entityid = c.uuid 
       JOIN merchants m 
         ON c.sender = m.uuid 
WHERE  t.paymenttype = 'DB' 
       AND t.status = 1 
       AND t.processing_time >= '2019-01-01' 
       AND t.processing_time < '2019-01-21' 
GROUP  BY m.name; 

这些是Laravel调试栏显示的查询...

enter image description here

下面是我的口才……

public function getTransactionsVolumeReport()
{
    $report = Transaction::select(DB::raw('sum(amount) as amount, entityId'))
        ->where('paymentType', '=', 'DB')
        ->where('status', 1)
        ->where('processing_time', '>=', '2019-01-01 00:00:00')
        ->where('processing_time', '<=', '2019-01-21 23:59:59')
        ->with(['channel' => function ($q) {
            $q->select('uuid', 'name', 'sender');
        }])
        ->with(['channel.merchant' => function ($q) {
            $q->select('uuid', 'name')
                ->groupBy('name');
        }])
        ->get();

    echo $report;
}

0 个答案:

没有答案