我想得到类似评论数量的新闻列表
文章 ------------- 评论
news1 ---------------- 10
news2 ---------------- 2
条新闻3 ---------------- 13
条新闻4 ---------------- 25
我知道如何用原始 sql 来做,但不能用 laravel 做。laravel 可以处理原始查询,但我不想将它用于整个查询。
这是我当前的剪切代码:
$newslist = News::where('status_id', 2)->orderBy('id', 'desc')->skip(0)->take($itemPerLoad)
->join('msuser', 'msuser.id', '=', 'news.user_id')
->select(....)->get();
我已经尝试将计数放在 select 方法上,但出现错误(上面未写的加入评论表)
->select('news.id', 'count(mscomment.id) as commented', ...)
因为我不能加入它,目前我使用单独的代码来计算它并将其设置为 json 响应
$commented = Comment::where('news_id', $news->id)->count();
我认为它不是获取数字的好方法,因为它会为每个循环请求计数