Laravel 4 Paginantor :: make,在每页上返回相同的数据

时间:2015-10-21 08:45:45

标签: methods laravel-4 pagination

我有一组文档,我已将其存储在数组$resultset中。我想在它上面应用laravel Paginator :: make方法。

In Controller: 
    $total_resultset = count($resultset);
    $perPage = 10;
    $currentPage = Input::get('pageno',1);
    $offSet = ($currentPage * $perPage) - $perPage;
    $pagedData = array_slice($resultset, $offSet,$perPage, true);
    $resultset = Paginator::make($pagedData, $total_resultset, $perPage);

 and in view:

   @foreach($resultset as $r)
    $r->title
    @endforeach
    {{ $resultset->links() }}

问题是,当我在$PagedData中使用Paginator::make时,每页返回10个文档。但是所有页面都有相同的文档集,而不是不同的文档,page = 2不会显示新的文档集。当我在$resultset中使用Paginator::make时,它会返回所有文档,而不仅仅是10.

我不能使用Eloquent或DB查询,因为$resultset有基于不同查询的文档。我很困惑我错了。

P.S我过去两天一直试图解决这个问题,但没有成功。请帮助我,任何形式的帮助将不胜感激。

提前致谢

1 个答案:

答案 0 :(得分:0)

$total_resultset = count($resultset);
$perPage = 10;
$currentPage = Input::get('pageno',0); //if you use default 1 you will skip 10 results
$offSet = ($currentPage * $perPage);// Ex: (1*10)= 10 - 10 = 0 you are not moving
$pagedData = array_slice($resultset, $offSet,$perPage, false);//maybe you are using Eloquent? you can use take() and skip() if is the case;  and you was preserving the array keys in slice so never move really
$resultset = Paginator::make($pagedData, $total_resultset, $perPage);

希望有帮助:)