如何使用 laravel eloquent 获得 "select count(*) group by"

How do I get a "select count(*) group by" using laravel eloquent

我想用 laravel eloquent

执行下面的句子
SELECT *, count(*) FROM reserves  group by day

我想到的唯一解决方案是在数据库中创建一个视图,但我很确定有一种 laravel 方式可以做到这一点。

你可以使用这个:

$reserves = DB::table('reserves')->selectRaw('*, count(*)')->groupBy('day');

正如您希望使用 Laravel Eloquent 那样,我假设您有一个型号名称 Reserve。在这种情况下你可以使用这个

$reserve = Reserve::all()->groupBy('day')->count();

您可以使用:

#Laravel Raw Expressions

  $reserves = DB::table('reserves')
                       ->select(DB::raw('count(*) as reserves_count'))           
                       ->groupBy('day')
                       ->get();

OR

  $reserves = Reserve::select(['reserves.*'])
                       ->groupBy('day')
                       ->count();

进一步阅读here