我的大脑突然撞到了这个.任何关心帮助我的人都非常感激.
这是laravel 5.4中的LengthAwarepaginator
这是代码.
$collection = [];
foreach ($maincategories->merchantCategory as $merchantCat) {
foreach ($merchantCat->merchantSubcategory as $merchantSub) {
foreach($merchantSub->products as $products){
$collection[] = $products;
}
}
}
$paginate = new LengthAwarePaginator($collection, count($collection), 10, 1, ['path'=>url('api/products')]);
dd($paginate);
Run Code Online (Sandbox Code Playgroud)
它显示完美,但问题是项目是100.这是我的所有项目,我正确指定.我只需要显示10个.
基于LengthAwarePaginator构造函数.这是参考.
public function __construct($items, $total, $perPage, $currentPage = null, array $options = [])
Run Code Online (Sandbox Code Playgroud)
这是屏幕截图.
我哪里做错了?TY
pat*_*cus 21
手动创建分页器时,您必须自己对结果集进行切片.分页器的第一个参数应该是所需的结果页面,而不是整个结果集.
从分页文档:
手动创建paginator实例时,应手动"切片"传递给paginator的结果数组.如果您不确定如何执行此操作,请查看array_slice PHP函数.
我建议使用Collection来帮助解决这个问题:
// ...
$collection = collect($collection);
$page = 1;
$perPage = 10;
$paginate = new LengthAwarePaginator($collection->forPage($page, $perPage), $collection->count(), $perPage, $page, ['path'=>url('api/products')]);
Run Code Online (Sandbox Code Playgroud)