Laravel Paginator对象没有渲染方法

时间:2017-03-24 02:37:12

标签: laravel laravel-5 laravel-5.2

我执行以下操作:

$array = new LengthAwarePaginator(array_slice($array, $offset, $perPage, true), count($array),$perPage, $page, ['path' => $request->url(), 'query' => $request->query()]);
dd($array->render());

我得到了渲染方法的正确html输出。

然后我尝试:

$array =  new Paginator(array_slice($array, $offset, $perPage, true), $perPage, $page, ['path' => $request->url(), 'query' => $request->query()]);
dd($array->render());

,输出为""。

当我(dd($array));时,我得到了:

Paginator {#310 ▼
  #hasMore: false
  #items: Collection {#315 ▶}
  #perPage: 10
  #currentPage: 1
  #path: "https://localhost/search/3"
  #query: array:1 [▶]
  #fragment: null
  #pageName: "page"
}

有人知道为什么我的Paginator没有渲染方法吗?

1 个答案:

答案 0 :(得分:0)

问题是由于Illuminate \ Pagination \ Paginator工作方式的误解。对于此对象,您不能像使用LengthAwarePaginator一样传入大小为$ perPage的数组,因为此Paginator将不知道是否存在下一页。所以,我提出的解决方案(虽然我没有找到任何提及此的文档)是将array_slice($array, $offset, $perPage * 2, true)作为输入传递给Paginator。这样它总是知道是否还有更多,我仍然不需要知道有多少项目。