anthony-dee / collection-macros
一组用于 Laravel Collection 类的有用扩展宏
v0.0.1
2022-04-19 20:20 UTC
Requires
- php: ^7.4|^8.0
- illuminate/support: ^8.0
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.0
README
此包包含一些扩展 Laravel
Collection 的宏。目前仅包含一个,即 pluckThenGroupBy
安装
您可以通过 composer 安装此包
composer require anthony-dee/collection-macros
使用方法
pluckThenGroupBy
这是原生 groupBy 和 pluck 方法的组合。它接受最多三个键,至少两个。第一个是 $groupBy 键,第二个($pluckValue)是用于提取的值,第三个(如果提供),用于将提取的值作为键。
此宏的一个很好的用途是为准备一个用于 optgroup 标签、option 值和文本的数据源的集合。
$collection = collect([ ['id' => 1, 'name' => 'Lesson 1', 'module' => 'Basics', 'reward' => 'gold'], ['id' => 2, 'name' => 'Lesson 2', 'module' => 'Basics', 'reward' => 'silver'], ['id' => 3, 'name' => 'Lesson 3', 'module' => 'Advanced', 'reward' => 'silver'], ['id' => 4, 'name' => 'Lesson 4', 'module' => 'Advanced', 'reward' => 'gold'], ['id' => 5, 'name' => 'Lesson 4', 'module' => 'Advanced', 'reward' => 'silver'], ]); $collection->pluckThenGroupBy('module', 'reward', 'name'); // [ // "Basics" => [ // "Lesson 1" => "gold" // "Lesson 2" => "silver" // ] // "Advanced" => [ // "Lesson 3" => "silver" // "Lesson 4" => "silver" // ] // ]
贡献
有关详细信息,请参阅 CONTRIBUTING
致谢
- [Anthony Douglas](https://github.com/ anthony-dee)
- 所有贡献者
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件
Laravel 包模板
此包是使用 Laravel 包模板 生成的。