"Skip" 方法在 Laravel 集合中
"Skip" method in a Laravel Collection
在查询生成器 (\Illuminate\Database\Query\Builder
) 中,可以同时使用 skip($n)
and take($n)
方法。
在集合(\Illuminate\Support\Collection
)中,可以使用take($n)
函数,但是没有skip($n)
函数。
为什么会这样,还有其他选择吗?
skip($n)
方法确实没有包含在Collection
class中,但是有一个函数做同样的事情:slice($n)
.
QueryBuilder(取自文档):
$users = DB::table('users')->skip(10)->take(5)->get();
Alternatively, you may use the limit and offset methods:
$users = DB::table('users')
->offset(10)
->limit(5)
->get();
Collection:
collect([1, 2, 3, 4])->slice(2)->all(); //[3, 4]
QueryBuilder
class 中的许多方法在 Collection
class 和 vice-versa 中不可用。但是两者都有相似的功能,像QueryBuilder
的where
function, you'd use Collection
's filter
功能也能达到相似的效果。
forPage 方法 returns 一个新集合,其中包含将出现在给定页码上的项目。该方法接受页码作为第一个参数,每页显示的项目数作为第二个参数:
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]);
$chunk = $collection->forPage(2, 3);
$chunk->all();
在查询生成器 (\Illuminate\Database\Query\Builder
) 中,可以同时使用 skip($n)
and take($n)
方法。
在集合(\Illuminate\Support\Collection
)中,可以使用take($n)
函数,但是没有skip($n)
函数。
为什么会这样,还有其他选择吗?
skip($n)
方法确实没有包含在Collection
class中,但是有一个函数做同样的事情:slice($n)
.
QueryBuilder(取自文档):
$users = DB::table('users')->skip(10)->take(5)->get();
Alternatively, you may use the limit and offset methods:
$users = DB::table('users') ->offset(10) ->limit(5) ->get();
Collection:
collect([1, 2, 3, 4])->slice(2)->all(); //[3, 4]
QueryBuilder
class 中的许多方法在 Collection
class 和 vice-versa 中不可用。但是两者都有相似的功能,像QueryBuilder
的where
function, you'd use Collection
's filter
功能也能达到相似的效果。
forPage 方法 returns 一个新集合,其中包含将出现在给定页码上的项目。该方法接受页码作为第一个参数,每页显示的项目数作为第二个参数:
$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9]);
$chunk = $collection->forPage(2, 3);
$chunk->all();