Laravel Collection是基于PHP Array之上的一个非常好用的API,我们可以把它看做是超级数组(Super Arrays),因为它拥有很多原生array所没有的功能。
今天我们要来学习一下Chunk函数的使用。假设我们有一个叫Room的Model,数据库里对应的rooms table中储存的是一系列的rooms。那么首先我们如果要获取所有的rooms,那么我们可以用get():
//get all rooms from rooms table
$rooms = Room::get();
现在我们有了一个叫$rooms
的变量,而这个变量储存的是从Room::get()
中返回的所有的room。这里返回的其实就是一个Laravel Collection,我们可以把Collection支持的所有方法用在$rooms
上。
比如我们现在有一个展示所有rooms的view,叫rooms_show.blade.php
,我们想做成多行(row),每行显示3个room,那么我们可以在Controller中,事先把所有的$rooms
分成三个一组,再传递给view,这样在view中,只需要简单的@if
和@foreach
结构,就能达到我们需要的功效。
那么怎么样把$rooms
分割成三个一组呢?很简单:
$room_groups = $rooms->chunk(3);
Voila! 这样$room_groups
里储存的就是三个一组的房间数组了!
是不是很实用呢?
更多的Collection函数可以在Laravel官网查看详情: