我使用LengthAwarePaginator对我的收藏品的结果进行分页,
$all_products = $all_products->where('scat_id', $sub_category);
$products = $this->manuallyPaginate($all_products);
all_products它是我的产品的集合,然后我使用了laravel where方法进行过滤,之后手动将其执行并执行
private function manuallyPaginate($array){
$total = count($array);
$perPage = 15;
$currentPage = Input::get('page', 1);
$paginator = new LengthAwarePaginator($array,
$total,
$perPage,
$currentPage,
['path' => url()->current()]
);
return $paginator;
}
这样可行,但所有产品都显示在每个页面中,而不是每页15个。 我错过了LengthAwarePaginator方法的参数吗?
答案 0 :(得分:0)
您需要指定当前页面。对于每个页面,您将currentPage变量设置为1。
尝试使用$_GET['page']
或Input::get('page', 1)
之类的内容将当前页面值从网址设置为$currentPage
。
答案 1 :(得分:0)
在您的函数manuallyPaginate()
中,您永远不会更改$currentPage
。
您应该使用Input facade:
page
参数
$currentPage = Input::get('page', 1);
Input::get()
方法接受第二个参数,如果未设置该属性,该参数将成为默认值。