You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel技术问题:近48小时至少2条评论的帖子时间筛选失效

解决Laravel筛选近48小时内至少2条评论帖子的问题

你的代码逻辑存在偏差:has('comments', '>', 1)是筛选总评论数≥2的帖子,而whereHas仅确保帖子至少有一条近48小时内的评论,两者组合后得到的是“总评论数≥2且存在一条近期评论”的结果,并非你需要的“近48小时内的评论数≥2”,这就是时间筛选未生效的核心原因。

修正后的代码:

$posts = Post::whereHas('comments', function ($query) {
    $query->where('created_at', '>', Carbon::now()->subDays(2));
}, '>', 1)->get()->toArray();

代码说明

whereHas方法的第三个参数是比较运算符,第四个参数是数量阈值,这段代码的逻辑是:筛选出关联的comments中,满足created_at在近48小时内的记录数大于1的帖子,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者micky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 21:51:16