# Collection类
### 介绍
`October\Rain\Support\Collection`类提供一个流畅,方便的包装用于与数据的数组工作。例如,查看以下代码。我们将从数组创建一个新的集合实例,`strtoupper`在每个元素上运行该函数,然后删除所有空元素:
~~~
$collection = new October\Rain\Support\Collection(['stewie', 'brian', null]);
$collection = $collection
->map(function ($name) {
return strtoupper($name);
})
->reject(function ($name) {
return empty($name);
})
;
~~~
在`Collection`类允许您链中的方法来执行流利映射和底层数组的减少。通常,每个`Collection`方法都返回一个全新的`Collection`实例。
### [](https://octobercms.com/docs/services/collections#creating-collections)创建收藏
如上所述,将数组传递给`October\Rain\Support\Collection`类的构造函数将为给定数组返回一个新实例。因此,创建集合非常简单:
~~~
$collection = new October\Rain\Support\Collection([1, 2, 3]);
~~~
默认情况下,[数据库模型的](https://octobercms.com/docs/database/model)集合始终作为`Collection`实例返回;但是,请`Collection`在适合您的应用程序的任何地方随意使用该类。
### 高阶消息
集合还支持“高级消息”,这是对集合执行常见操作的捷径。提供更高阶的信息收集方法有:[`average`](https://octobercms.com/docs/services/collections#method-average),[`avg`](https://octobercms.com/docs/services/collections#method-avg),[`contains`](https://octobercms.com/docs/services/collections#method-contains),[`each`](https://octobercms.com/docs/services/collections#method-each),[`every`](https://octobercms.com/docs/services/collections#method-every),[`filter`](https://octobercms.com/docs/services/collections#method-filter),[`first`](https://octobercms.com/docs/services/collections#method-first),[`flatMap`](https://octobercms.com/docs/services/collections#method-flatmap),[`groupBy`](https://octobercms.com/docs/services/collections#method-groupby),[`keyBy`](https://octobercms.com/docs/services/collections#method-keyby),[`map`](https://octobercms.com/docs/services/collections#method-map),[`max`](https://octobercms.com/docs/services/collections#method-max),[`min`](https://octobercms.com/docs/services/collections#method-min),[`partition`](https://octobercms.com/docs/services/collections#method-partition),[`reject`](https://octobercms.com/docs/services/collections#method-reject),[`some`](https://octobercms.com/docs/services/collections#method-some),[`sortBy`](https://octobercms.com/docs/services/collections#method-sortby),[`sortByDesc`](https://octobercms.com/docs/services/collections#method-sortbydesc),[`sum`](https://octobercms.com/docs/services/collections#method-sum),和[`unique`](https://octobercms.com/docs/services/collections#method-unique)。
每个高阶消息都可以作为集合实例上的动态属性来访问。例如,让我们使用`each`高阶消息在集合内的每个对象上调用一个方法:
~~~
$users = User::where('votes', '>', 500)->get();
$users->each->markAsVip();
~~~
同样,我们可以使用`sum`较高顺序的消息来收集用户集合的“票数”总数:
~~~
$users = User::where('group', 'Development')->get();
return $users->sum->votes;
~~~
- 基本说明
- 基本操作
- October cms 安装
- 后台控制器路径
- 图标
- 获取安装网上的插件/主题
- 插件构造器使用
- 定时任务
- October后台控制器
- vscode编辑器
- ajax操作
- 使用
- ajax更新组件
- ajax属性API
- JavaScript API
- ajax综合使用
- 主题
- 多语言主题
- 安装市场主题
- 主题程序处理
- 主题
- 页面
- 部件
- 布局
- 内容
- 组件
- 媒体
- 主题表单操作
- 表单使用
- 表单后端程序处理
- 插件
- 自定义插件
- 插件说明
- 插件导航条
- 插件数据库设置
- 插件的设置管理
- 插件的配置文件config
- 组件
- app服务
- app容器
- 扩展行为
- 缓存
- Collection类
- Lazy Collections
- Collection方法
- 助手函数
- 数组助手函数
- 路径助手函数
- 玄乐助手函数
- 其他助手函数
- 错误与记录
- 事件处理
- HTML页面
- 文件与目录操作
- 散列和加密
- 邮件
- 邮件内容
- 邮件发送
- 分页
- 模板解析器
- 动态解析器语法
- 队列消息
- 请求与输入
- 响应
- 视图
- 路由器
- 配置
- 验证操作
- 处理错误消息
- 错误消息与视图
- 可用的验证规则
- 有条件的验证规则
- 验证数组
- 错误消息
- 自定义验证规则
- 模型操作
- 定义模型与其属性
- 检索模型
- 插入与更新
- 删除模型
- 查询范围
- 事件操作
- 关联操作
- 定义关系
- 关系类型
- 多肽关系
- 关系查询
- 渴望加载
- 插入模型
- 数据库操作
- 基本用法
- 数据表结构
- 查询连贯操作
- 结果检索
- select子句
- 插入更新
- where子句
- 排序,分组,限制和偏移
- 文件附件
- Collection操作
- 属性操作
- 系列化json
- 数据库属性
- 数据库行为
- 控制器
- 后台控制器定义
- 后台页面
- 后台组件
- 后台表单
- 表单组件
- 表单视图
- 表单行为
- 后台列表
- 列表行为
- 列表过滤器
- 可用列类型
- 关系行为
- 关系行为类型
- 扩展关系行为
- 列表排序操作
- 导入导出操作
- 用于与权限
- corlate模板修改
- 修改顶部导航
- laravel问题
- 控制器不存在
- 控制器
- 路由组
- laravel笔记
- laravel 安装
- 伪静态配置
- 依赖注入 & 控制器
- 中间件
- 路由文件
- 视图