如何将我的查询更改为 laravel eloquent ORM?

how to change my query into laravel eloquent ORM?

我有这样的查询:

SELECT 
t1.id as id_guru, t1.nama_guru,
COALESCE(t2.total, 0) AS total
FROM `guru` t1
LEFT JOIN(SELECT id_guru, COUNT(*) as total FROM absensi_guru where status_masuk = "Terlambat" GROUP BY id_guru) t2 ON t1.id = t2.id_guru

我想将我的查询更改为 laravel Eloquent ORM,我从这个站点甚至在 laracast 中尝试了很多方法。

如果我是你,我将使用你的查询在 MySQL 中创建一个视图,然后使用 Eloquent 或 Laravel 中的查询生成器来查询数据库。

以防万一,如果您想直接在 Laravel 中而不使用视图,则需要定义 Eloquent 关系。您可能会找到有关 eloquent 关系的更多信息 HERE

要在 Laravel 中使用,这里有一个示例代码,只是不要复制粘贴,理解它并更新您的查询

$multipleitems = DB::table('items')
             ->leftJoin('votes','items.itemId','=','votes.masterItemId')
             ->select('items.itemId',DB::raw('ifnull(sum(votes.votes),0) as voteSum'))
                   ->whereBetween('votes.voteDate',array($startDate,$endDate))
                   ->where($condition)
                   ->groupBy('items.temId')
                   ->get();

这是