Laravel查询统计24小时内指定用户及status_code的WebhookLog日志数量
Laravel 日志统计查询修改方案
你可以直接在原有查询基础上追加对应筛选条件,并且直接调用count()方法做数据库层面的统计,不需要拉取全量日志,性能更高,修改后的代码示例如下:
// 假设你的指定用户ID变量为$userId,指定状态码变量为$statusCode $logCount = WebhookLog::where('company_id', $company->id) ->where('user_id', $userId) // 可替换为你实际表中存储用户标识的字段名 ->where('status_code', $statusCode) // 固定查400的话直接写400即可 ->where('created_at', '>=', now()->subDay()) ->count();
注意事项
- 时间筛选默认用
created_at(日志创建时间),如果你的业务逻辑需要按更新时间统计,替换为updated_at即可 now()->subDay()是Laravel自带的时间操作方法,会自动匹配你项目配置的时区生成24小时前的时间戳- 原查询的
orderBy和get()不需要保留,统计总数时排序和拉取全量数据都是多余操作,会浪费数据库性能
内容的提问来源于stack exchange,提问作者EMV
相关产品推荐
相关产品推荐

