使用Eloquent计算所有分组的行

问题描述 投票:1回答:1

我试图计算所有分组的行,但如果可能的话,不知道如何使用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“调用”更漂亮?

laravel eloquent
1个回答
1
投票

你可以使用Query Builder

我会做一些事情(我不认为你需要那个子查询):

Report::where('project_id', $this->project->id)
    ->count(DB::raw('DISTINCT date'));
© www.soinside.com 2019 - 2024. All rights reserved.