我正在使用Laravel 5.2和 LengthAwarePaginator 对我的Collection进行分页,除了lastPage()方法之外一切顺利,它一如既往地给我1个。
这是我的代码:
我使用 foreach 循环构建集合:
$collection = collect();
foreach ($rows as $row) {
$collection->push($row);
}
然后我分页使用:
$collection = $collection->sortBy('id')->forPage($page, $page_limit);
$collection = new LengthAwarePaginator($collection, $collection->count(), $page_limit, $page);
return $collection;
这是我的分页信息:
我的问题是为什么 - > lastPage()值始终为1?
任何帮助对我都非常有帮助。
提前致谢
答案 0 :(得分:2)
这是因为你的$collection
在第一行之后,只会包含8个项目,然后你将它的计数作为第二个参数传递给LengthAwarePaginator
- 这将返回8项的计数。
在您的情况下我会做的是:
$all = $collection->sortBy('id');
$chunk = $collection->forPage(3, 8);
$paginator = new LengthAwarePaginator($chunk, $all->count(), 8, 3);