Laravel中使用withCount()后如何统计全部分类的总文章数
实现方案
方案1:复用已有查询结果(无额外数据库请求)
适合所有文章必须关联分类的业务场景,直接对已查询到的各分类文章数求和即可:
控制器修改
$categories = BlogCategory::withCount('articles')->get(); // 新增代码:对集合内的articles_count字段求和 $totalArticles = $categories->sum('articles_count'); // 两个变量都传到视图,示例: return view('你的视图路径', compact('categories', 'totalArticles'));
模板修改
修改All选项的代码,拼接总数量即可:
<div class="blog-filter__item active" data-filter="all">All ({{ $totalArticles }})</div>
方案2:直接统计文章表总数(结果更准确)
如果存在文章未关联任何分类的情况,方案1会漏掉这部分数据,直接统计文章表总数更符合「全部分类下总文章数」的需求:
控制器修改
use App\Models\Article; // 顶部引入你自己的文章模型 $categories = BlogCategory::withCount('articles')->get(); // 新增代码:直接统计文章表总记录数 $totalArticles = Article::count(); return view('你的视图路径', compact('categories', 'totalArticles'));
模板修改
和方案1的模板修改逻辑完全一致。
内容的提问来源于stack exchange,提问作者user16978178
相关产品推荐
相关产品推荐

