Laravel 5和长度意识分页

时间:2015-04-08 23:24:39

标签: laravel laravel-5

我看起来有另一个分页问题。当我遍历下面的分页数组时,我每页都会得到整个数组。

$array = [...];
$ret = new LengthAwarePaginator($array, count($array), 10);
// dd($ret);

LengthAwarePaginator {#302 ▼
  #total: 97
  #lastPage: 10
  #items: Collection {#201 ▼
    #items: array:97 [▶]
  }
  #perPage: 10
  #currentPage: 1
  #path: "/"
  #query: []
  #fragment: null
  #pageName: "page"
}

从雄辩的模型构建LAP时不是这种情况,例如:Blah::paginate()

2 个答案:

答案 0 :(得分:18)

分页器不会自动为您分割给定的数组。在将它传递给分页器之前,你必须先自己切片。

为了让您的生活更轻松,请使用collect帮助程序创建laravel集合的实例,这样可以非常轻松地进行切片:

$items = collect([...]);
$page = Input::get('page', 1);
$perPage = 10;

$paginator = new LengthAwarePaginator(
    $items->forPage($page, $perPage), $items->count(), $perPage, $page
);

答案 1 :(得分:0)

LengthAwarePaginator不会自动分块。快速解决方法是做类似的事情:

foreach($col->slice($col->perPage() * ($col->currentPage() - 1), $col->perPage()) as $item)
{
     // do blah
}