laravel 5.4 LengthAwarePaginator丢失页面结果

时间:2018-03-21 19:42:07

标签: php laravel-5.4

我使用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方法的参数吗?

2 个答案:

答案 0 :(得分:0)

您需要指定当前页面。对于每个页面,您将currentPage变量设置为1。

尝试使用$_GET['page']Input::get('page', 1)之类的内容将当前页面值从网址设置为$currentPage

答案 1 :(得分:0)

在您的函数manuallyPaginate()中,您永远不会更改$currentPage。 您应该使用Input facade

将其设置为GET page参数
$currentPage = Input::get('page', 1);

Input::get()方法接受第二个参数,如果未设置该属性,该参数将成为默认值。