-
EloquentのgroupByメソッドを使用する方法:
$posts = Post::groupBy(DB::raw('DATE(created_at)'))->get();
この方法では、
groupBy
メソッドにDATE
関数を使用して、created_atカラムの日付部分のみでグループ化します。 -
コレクションのgroupByメソッドを使用する方法:
$posts = Post::all()->groupBy(function ($post) { return $post->created_at->format('Y-m-d'); });
この方法では、
groupBy
メソッドにクロージャを渡し、created_atの日付を指定の形式にフォーマットしてグループ化します。 -
データベースクエリのグループ化を使用する方法:
$posts = DB::table('posts') ->select(DB::raw('DATE(created_at) as date'), DB::raw('count(*) as count')) ->groupBy('date') ->get();
この方法では、
select
メソッドでDATE(created_at)を選択し、groupBy
メソッドで日付ごとにグループ化します。必要に応じて、カウントなどの集計関数も使用できます。