Laravel 用雄辩的语言计算所有分组行

Laravel 用雄辩的语言计算所有分组行,laravel,eloquent,Laravel,Eloquent,我试图计算所有分组的行,但不知道如何做,如果可能的话,与雄辩 我的查询如下所示: SELECT COUNT(*) FROM (SELECT date FROM `reports` WHERE project_id = X GROUP BY `date`) as t1 到目前为止,我正在使用原始数据库查询: DB::select(DB::raw("SELECT COUNT(*) as total FROM (SELECT date FROM `" . (new Report)->getTa

我试图计算所有分组的行,但不知道如何做,如果可能的话,与雄辩

我的查询如下所示:

SELECT COUNT(*) FROM (SELECT date FROM `reports` WHERE project_id = X GROUP BY `date`) as t1
到目前为止,我正在使用原始数据库查询:

DB::select(DB::raw("SELECT COUNT(*) as total FROM (SELECT date FROM `" . (new Report)->getTable() . "` WHERE project_id = " . ((int) $this->project->id) . " GROUP BY `date`) as t1"))[0]->total
是否可以通过雄辩的方式实现这一点,或者至少让PHP“调用”更漂亮?

您可以使用:

我会在这方面做一些事情(我认为您不需要该子查询):


在groupBy之后添加
->count()
可能有效,您尝试过吗?无效。它不计算从
groupBy
返回的行数。谢谢。更干净。
Report::where('project_id', $this->project->id)
    ->count(DB::raw('DISTINCT date'));