后端开发|php教程
[ Laravel 5.2 文档 ] Eloquent ORM — 集合
后端开发-php教程
asp邮件发送源码,vscode修改内存大小,ubuntu怎么rm,获取tomcat部署路径,爬虫繁殖厂,php木马原理,非流量监控对seo影响,网站显示弹窗,demx96 美容美甲类网站手机模板lzw
1、简介
Eloquent返回的所有的包含多条记录的结果集都是 Illuminate\Database\Eloquent\Collection对象的实例,包括通过 get方法或者通过访问关联关系获取的结果。Eloquent 集合对象继承自 Laravel的集合基类,因此很自然的继承了很多处理 Eloquent 模型底层数组的方法。
微信手机商城源码,vscode中不能渲染代码,ubuntu图标包,如何对tomcat优化,爬虫学习难度,订餐系统php开发,潜江餐饮seo推广哪个好,校园二手交易网站 源代码asp,织梦模板后台密码忘lzw
当然,所有集合也是迭代器,允许你像数组一样对其进行循环:
highcharts php源码,ubuntu怎么清空系统,100米骷髅爬虫,php 5.3.20,豆瓣seo排名lzw
$users = App\User::where(active, 1)->get();foreach ($users as $user) { echo $user->name;}
然而,集合使用直观的接口提供了各种映射/简化操作,因此比数组更加强大。例如,我们可以通过以下方式移除所有无效的模型并聚合还存在的用户的名字:
$users = App\User::where(active, 1)->get();$names = $users->reject(function ($user) { return $user->active === false;})->map(function ($user) { return $user->name;});
注意:尽管大多数 Eloquent 集合返回的是一个新的 Eloquent 集合实例,但是 pluck、 keys、 zip、 collapse、 flatten和 flip方法返回的是集合基类实例。
2、可用方法
所有的 Eloquent 集合继承自 Laravel 集合对象基类,因此,它们继承所有集合基类提供的强大方法:
all
chunk
collapse
contains
count
diff
each
filter
first
flatten
flip
forget
forPage
get
groupBy
has
implode
intersect
isEmpty
keyBy
keys
last
map
merge
pluck
pop
prepend
pull
push
put
random
reduce
reject
reverse
search
shift
shuffle
slice
sort
sortBy
sortByDesc
splice
sum
take
toArray
toJson
transform
unique
values
where
whereLoose
zip
3、 自定义集合
如果你需要在自己扩展的方法中使用自定义的集合对象,可以重写模型上的 newCollection方法:
<?phpnamespace App;use App\CustomCollection;use Illuminate\Database\Eloquent\Model;class User extends Model{ /*** 创建一个新的Eloquent集合实例** @param array $models* @return \Illuminate\Database\Eloquent\Collection*/ public function newCollection(array $models = []) { return new CustomCollection($models); }}
定义好 newCollection方法后,无论何时 Eloquent 返回该模型的 Collection实例你都会获取到自定义的集合。如果你想要在应用中的每一个模型中使用自定义集合,需要在模型基类中重写 newCollection方法。