2016-08-14 90 views
1

我試圖通過month獲得名爲billable的值(總和)。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

試試這個:

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

Laravel是把周圍DATE_FORMAT反引號使SQL認爲這是一列。使用DB::raw()函數來解決這個問題。

+0

真棒感謝工程很酷! – Jamie

+0

@jamie真棒,很高興聽到它。如果您發現這有用,請務必接受我的回答。 –