web-dev-qa-db-fra.com

Comment obtenir un groupe "select count (*)" avec laravel eloquent

Je voudrais exécuter la phrase suivante en utilisant laravel éloquent

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

La seule solution qui me soit offerte est de créer une vue dans la base de données, mais je suis pratiquement sûr qu'il existe un moyen de le faire de manière laravel.

7
Ugo Guazelli

Vous pouvez utiliser ceci:

$reserves = DB::table('reserves')->selectRaw('*, count(*)')->groupBy('day');
16
Marcin Nabiałek

Si vous souhaitez le faire avec Laravel Eloquent, je suppose que vous avez un nom de modèle Reserve. Dans ce cas, vous pouvez utiliser cette

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

Vous pouvez utiliser: 

#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();

Plus loin lire ici

0
Khine Thu