我试图计算所有分组的行,但如果可能的话,不知道如何使用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)->getTable() . "` WHERE project_id = " . ((int) $this->project->id) . " GROUP BY `date`) as t1"))[0]->total
是否有可能通过Eloquent实现这一点,或者至少使PHP“调用”更漂亮?
你可以使用Query Builder:
我会做一些事情(我不认为你需要那个子查询):
Report::where('project_id', $this->project->id)
->count(DB::raw('DISTINCT date'));