laravel - 有没有办法按模型集合中的元素分组?
问题描述
有没有办法按模型按 Laravel 集合中的数据分组?
例子:
Illuminate\Support\Collection {#1743 ▼
#items: array:5 [▼
0 => App\Models\Inicijativa {#1789 ▶}
1 => App\Models\Obavestenje {#1742 ▶}
2 => App\Models\Obavestenje {#1733 ▶}
3 => App\Models\Samoprocena {#1672 ▶}
4 => App\Models\Samoprocena {#1795 ▶}
]
}
在这个例子中,我想要 3 个组:
- Inicijativa 有 1 件商品
- Obavestenje 与 2 项目
- Samoprocena 与 2 项目
他们没有我可以区分它们的列。
解决方案
一旦你有了一个集合,你就可以使用任何你想要分组的东西:
$grouped = $collection->groupBy(function ($item) { return get_class($item); });
这将根据对每个元素应用的结果对集合元素进行分组get_class
。这是允许的,因为结果get_class
是一个字符串,指示对象类的完全限定名称
推荐阅读
- mysql - SQL 查询以查找遵循特定模式的字符串
- selenium - Selenium 自动化:根据@BeforeMethod 中的条件跳过测试的执行
- ios - 如何在 iOS 中获取附近运营商 (GSM) 的列表和信息
- installation - 包安装问题,(生存分析)
- javascript - 将图像从画布保存到服务器。空白图像被保存
- angular - Highchart - 双轴折线图问题
- swiftui - 具有 UIViewcontrollerRepresentable 的自定义 UIViewController 具有在 SwiftUI 中调用时崩溃或为零的 UITextView
- hybris - PCM 后台数据质量覆盖中没有要显示的数据
- ruby-on-rails - 在rails中对html进行验证
- xcode - 错误:安装库时 MacOS 上的未知类型名称“uint64_t”