2017-12-23 13 views
1

https://erik.cat/projects/Charts/docs/5パッケージを使用してlaravelプロジェクトのグラフを表示しようとしていますが、モデル(データベース)を使用する必要があることに気付きました。ここではドキュメント今laravel生のSQLクエリをコレクションに変換する

$chart = Charts::database(User::all(), 'bar', 'highcharts'); 

からのサンプルである、私は私のクエリのために雄弁なORMを使用していない、私の代わりに生のクエリを使用します。私は、あなたが最初に取得するmodifyで日付とDateTimeを扱う取得するwhereBetweenを使用することができ、それが現在

$result = DB::select("SELECT DATE(a.created_at) as date, SUM(a.credit) as credit, SUM(a.debit) 
     FROM telco_transactions AS a 
     WHERE a.telco_id = '1' and DATE(a.created_at) BETWEEN DATE(NOW())-INTERVAL 7 DAY AND DATE(NOW()) 
     GROUP BY DATE(a.created_at)"); 

答えて

0

を返し、それが配列の代わりにコレクションを返すように持っているこの特定のクエリを変換する方法がわかりません日付。

$now = date('Y-m-d H:i:s'); 
$before = new \DateTime(); 
$before->modify('-7 days'); 
$result = TelcoTransaction::where('telco_id', 1) 
          ->whereBetween('created_at', [$before->format('Y-m-d H:i:s', $now]) 
          ->groupBy('created_at') 
          ->get();  

ちょうどcreated_atによってグループ化すると、わずか数秒を含む正確に同じ日付時刻、で動作するように起こっていることに気づきます。

0

こんにちは、あなたがこの

$result->toArray(); 
ような何かを行うことができます
関連する問題