2016-08-14 3 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 굉장하고, 듣기 좋다. 이 기능이 유용하다고 판단되면 제 대답을 수락하십시오. –