问题
I would like to execute the follow sentence using laravel eloquent
SELECT *, count(*) FROM reserves group by day
The only solution occurs to me is to create a view in the DB, but I am pretty sure there is a way to do it in laravel way.
回答1:
You could use this:
$reserves = DB::table('reserves')->selectRaw('*, count(*)')->groupBy('day');
回答2:
As you wish to do it with Laravel Eloquent I assume you have a model name Reserve
. In this case you can use this
$reserve = Reserve::all()->groupBy('day')->count();
回答3:
You could use:
#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();
Further read here
来源:https://stackoverflow.com/questions/34827917/how-do-i-get-a-select-count-group-by-using-laravel-eloquent