您的位置:首页 >Laravel 关联查询分组聚合技巧
发布于2026-04-18 阅读(0)
扫一扫,手机访问

本文介绍使用 Laravel 集合(Collection)的 groupBy 和 map 方法,将多对一关联查询结果(如分类与子分类)自动聚合成嵌套数组结构,避免手动循环判断,提升代码简洁性与执行效率。
本文介绍使用 Laravel 集合(Collection)的 groupBy 和 map 方法,将多对一关联查询结果(如分类与子分类)自动聚合成嵌套数组结构,避免手动循环判断,提升代码简洁性与执行效率。
在 Laravel 中执行表关联查询后,原始结果通常以扁平化集合形式返回(如每个子分类单独一行),但业务场景常需按父级字段(如 catname)归类聚合子项。例如,从 categories 与 subcategories 表联查获取 'Music' => 'Jazz' 等键值对后,期望输出为 'Music' => ['Jazz', 'Rock', 'Pop'] 这样的嵌套结构。
推荐采用 Laravel 内置的 Collection 链式操作实现零循环、高可读的转换:
$subcategories = Subcategory::select('subcategories.name as subcatname', 'categories.name as catname')
->join('categories', 'subcategories.idCategory', '=', 'categories.id')
->get();
$result = collect($subcategories)
->groupBy('catname')
->map(fn ($group) => $group->pluck('subcatname')->all())
->all();✅ 关键点说明:
⚠️ 注意事项:
该方法兼顾性能与可维护性,是 Laravel 生态中处理“一对多结果聚合”的标准实践。
上一篇:Laravel认证系统搭建教程
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9