web-dev-qa-db-ja.com

laravel= eloquentを使用して「select count(*)group by」を取得するにはどうすればよいですか?

laravel eloquentを使用して次の文を実行したい

SELECT *, count(*) FROM reserves  group by day

私にとって唯一の解決策は、DBにビューを作成することですが、laravelの方法でそれを行う方法があると確信しています。

12
Ugo Guazelli

これを使用できます:

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

あなたがLaravel Eloquentでそれをしたいので、モデル名Reserveがあると仮定します。この場合、これを使用できます

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

次を使用できます。

#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

1
Khine Thu