前回までの状況はこちら
最新ソースはこちら
https://github.com/takishita2nd/hotel-mng
月毎に集計を行います。
このときのデータベースの操作が大変で・・・
/**
* 月毎に集計する
*/
public function countByMonthly()
{
return ReserveDayList::select(DB::raw('DATE_FORMAT(day, "%Y-%m") as yearmonth'), DB::raw('count(*) as count'), DB::raw('count(*) * 2000 as total'))
->groupby('yearmonth')
->get();
}
リポジトリはこれでなんとかできました。
select文でdayカラムをYYYY-mmのフォーマットで出力(このカラム名をyearmonthとする)。
yearmonthごとにgroupByでグループ分けし、count(*)で集計を行います。
もっとうまい方法があるかもしれませんが、迷ったらDB::raw()を使ったほうがいいかもしれません。
でも、これができれば完成したも同然。
簡単すぎるので、コードは省略。

あとは最後の微調整で完成ですね。
バナークリックで応援よろしくお願いします。