2016-09-02 3 views
1

나는 1 년 단위로 그룹화하고 싶은 컬렉션이 있습니다.Laravel에서 연도 및 월별 컬렉션 그룹화

2014 
    jan 
     2nd 
     5th 
     ... 
    feb 
     11th 
     12th 
     ... 
    mar 
    ... 
2013 
    jan 
    feb 
    mar 
    ... 
2012 
    jan 
    feb 
    mar 
    ... 

이것은 현재 컬렉션이지만 올해 만입니다. 나는 이것으로 내가 정말로 원했던 것을 얻을 수 없었다.

$collection =$model->orderBy('date', 'desc')->get()->groupBy(function($item) { 
     return $item->date->format('Y'); 
    }); 

답변

0

DB에 그룹으로 작업을 수행 : 원시 ('MONTH (날짜 변수)')

예를 들어,이 시도 :

$model->orderBy('date')->groupBy(DB::raw('MONTH(date)'))->selectRaw('DATE_FORMAT(date, "%M %Y") as Month)->get();