简介

像all()和get(),还有一些处理模型关系这种会返回多条数据的方法,在Eloquent里面会返回一个collection对象集合(对象装在对象里),而不是像DQB的数组结果集合(对象装在数组里)。Collection其实前面已经讲过了,它是在数据查询出来后,提供了一系列处理数据的方法,非常强大实用。

首先,所有的collection都可以遍历:

  1. $users = App\User::where('active', 1)->get();
  2. foreach ($users as $user) {
  3. echo $user->name;
  4. }

但是,collection的能力远远不止于此,非常强大,例如:

  1. $users = App\User::all();
  2. $names = $users->reject(function ($user) {
  3. return $user->active === false;
  4. })
  5. ->map(function ($user) {
  6. return $user->name;
  7. });

这段代码把所有非激活状态的用户去除,并把剩余用户的名字列出来;

Collection 方法

请参考官网。

在模型中自定义Collection

主要方法是覆盖newCollection()方法:

  1. namespace App;
  2. use App\CustomCollection;
  3. use Illuminate\Database\Eloquent\Model;
  4. class User extends Model
  5. {
  6. public function newCollection(array $models = [])
  7. {
  8. return new CustomCollection($models);
  9. }
  10. }
  11. `

CustomCollection()就是你自定义的一个类;在里面你可以组织返回collection的内容;

目前这个方法只是对Usermodel适用,如果你想对所有适用,可以把覆盖方法放到一个所有模型都继承的基类中去。

转载于:https://www.cnblogs.com/isykw/p/6151740.html

Laravel 5.1 文档攻略 —— Eloquent Collection相关推荐

  1. Laravel 5.1 文档攻略 —— Eloquent:模型关系

    简介 其实大家都知道,数据表之间都是可以关联的,前面讲过了,Eloquent ORM是数据模型操作代替表操作,那么表的关联查询,在Eloquent这里也就是模型间的关联查询,这就是本章的主要内容: E ...

  2. Laravel 5.1 文档攻略——Laravel Eloquent ORM最强大也是最难理解的部分:数据关系...

    简介 其实大家都知道,数据表之间都是可以关联的,Eloquent ORM是数据模型操作代替表操作,那么表的关联查询,在Eloquent这里也就是模型间的关联查询,这就是本章的主要内容: Eloquen ...

  3. 软文写作攻略:教育行业软文怎么写?

    各位朋友们大家好!今天云媒易又来给大家分享软文推广的干货知识啦!本篇咱们要给大家分享的内容是"软文写作攻略:教育行业软文怎么写?". 软文,就是指通告语言.文字的表达方式去说服消费 ...

  4. [ Laravel 5.5 文档 ] 快速入门 —— 使用 Laragon 在 Windows 中搭建 Laravel 开发环境

    简介 之前学院君陆续写了三篇介绍 Laravel 开发环境的教程:Homestead.Valet 和 LaraDock,我都是在 Mac 系统中安装使用的,相当流畅,没有任何梗,但是对于那些使用 Wi ...

  5. Laravel生成Word文档 - phpword

    工作中常常会遇到数据导出功能,比如把数据导出成word.docx文档.那么用Laravel如何实现呢. 今天给大家介绍一下phpword的使用,它可以很方便的实现word文档的生成,同时可以在word ...

  6. laravel接口 接口文档

    接口 先在控制器里写一个接口的方法   之所以写了两个方法 因为写接口单独创建一个控制器比较好 避免与页面展示冲突 // 展示页面 配合城市接口执行public function cityshow() ...

  7. laravel入门学习文档

    laravle总结 一丶安装1.首先安装compser.2.安装好compser后在cmd命令中输入compser出现 就安装成功了! 3.安装php的环境(自己用的是phpstudy,php环境安装 ...

  8. 获取更全面的软文写作攻略

    软文顾名思义是相对于硬性广告而言,由企业的市场策划人员或广告公司的文案人员来负责撰写的"文字广告".与硬广告相比,软文之所以叫做软文,精妙之处就在于一个"软"字 ...

  9. Redis分布式锁一文全攻略

    分布式锁概念 分布式锁其实就是,控制分布式系统的不同进程共同访问共享资源的一种锁的实现.如果不同系统或同一个系统的不同主机去访问一个共享的临界资源,往往需要互斥来防止彼此干扰,以保证一致性. 分布式锁 ...

  10. laravel 常用文档

    [ Laravel 5.6 文档 ] 快速入门 -- 目录结构  laravel学院 http://laravelacademy.org/post/8657.html Laravel 的缓存系统    ...

最新文章

  1. webstorm设置点击(单击)左侧项目资源管理器里面的文件,自动在右侧打开源代码文件
  2. 【学习笔记】供应链金融简介(精华)
  3. systemctl与mysql多实例_mysql mariadb 多版本多实例 开机启动
  4. java设计模式演示样例
  5. php中括号的优先级是不是最高的,理解php中操作符的优先级和结合性
  6. XSS-Game level 13
  7. Spring-context-ConfigurationClassBeanDefinitionReader类
  8. session的保存方式.
  9. 谷歌浏览器的前端代码调试
  10. Android 跟 ios 测试有什么区别
  11. Android SVG矢量图形打造中国地图
  12. 千月影视全新改版影视app系统-支持投屏-二开美化版
  13. 有赞实时数仓建设实践与经验
  14. 过拟合与欠拟合的生动理解
  15. 相机和雷达外参联合标定
  16. Opencv基础使用3——HDR 图像合成
  17. 【无浪】自己用C++实现的零游戏的战斗(半成品)
  18. 超级壁纸android,【教程】MIUI最新超级壁纸安卓全机型安装指南
  19. 【多线程常见面试题】
  20. 度娘果然毫无节操,纯粹就是order by 广告费 desc

热门文章

  1. 蓝桥杯包子凑数-完全背包
  2. 单台电脑运行多个 Tomcat 服务器
  3. Spring DeferredResult 实现长轮询
  4. python进阶之内置方法
  5. 【linux就该这么学】-09
  6. 第九课 go的循环语句
  7. Python中and(逻辑与)计算法则
  8. Gym 100342E Minima (暴力,单调队列)
  9. Xcode6 部署iphone4s出现的问题 No architectures to compile for
  10. 用Java+xml配置方式实现Spring数据事务(编程式事务)