Laravel获得最多记录的前5个ID

Koe*_*nde 2 php mysql laravel eloquent laravel-query-builder

我有一个名为errors以下字段的表:id, website_id, message & level.我正在尝试获得错误最多的前5个网站.

询问

SELECT website_id, COUNT(id) AS 'errors' FROM errors GROUP BY website_id ORDER BY COUNT(*) DESC

我不知道如何使用Laravel Query Builder和Eloquent来做到这一点.谁能帮我吗?

数据库截图

在此输入图像描述

Jer*_*dev 5

您可以使用该DB::raw("{query}")函数执行原始查询.

但是如果你想使用雄辩,你将不得不使用关系并查询这些.例如,如果您的Website模型与模型有关系Error,则可以执行以下操作以获取具有最多错误的网站模型:

Website::withCount('errors')            // Count the errors
    ->orderBy('errors_count', 'desc')   // Order by the error count
    ->take(5)                           // Take the first 5
    ->get();
Run Code Online (Sandbox Code Playgroud)