2016-08-14 11 views
1

billableという値(合計)をmonthで取得しようとしています。Laravelは月ごとに値を取得します

私はこのようにそれを試してみた:

$time = Ride::where('date', '>=', Carbon::now()->firstOfYear()) 
        ->select('DATE_FORMAT(date, "%m") as month, sum(billabletime) as time') 
        ->groupBy('month') 
        ->pluck('time'); 

しかし、私はこのようにそれを行うとき、私は受け取る:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'DATE_FORMAT(date,' in 'field list' (SQL: select `DATE_FORMAT(date,` as `as` from `ride` where `date` >= 2016-01-01 00:00:00 group by `month`) 

は、どのように私は(私はMySQLを使用して)これが機能するのですか?

+1

代わりに 'select(DB :: raw(...))'を使用してください。 –

答えて

3

これを試してみてください:LaravelはDATE_FORMATの周りにバッククォートを入れている

->select(\DB::raw('DATE_FORMAT(date, "%m") as month, sum(billabletime) as time')) 

ので、SQLはそれが列だと思っているようです。これを回避するにはDB::raw()関数を使用してください。

+0

恐ろしい感謝は涼しい作品! – Jamie

+0

@jamieすごく、聞いてうれしいです。これが便利だと分かったら、私の答えを受け入れてください。 –

関連する問題