自定义Laravel分页链接不起作用

时间:2018-07-01 18:02:25

标签: laravel paginate

我正在一页上处理两个分页,但分页链接无法正常工作。

情况如下: 我得到一个雄辩的对象,然后对其进行排序并进行一些处理,从而将其转换为两个单独的集合。

现在,我有两个由"Lengthawarepaginator"转移的集合-并通过方法"setPageName()"为每个集合添加了分页名称。 (我必须使用自定义分页来执行此操作,因为我正在使用这些分页,因此更具体的口才查询是毫无疑问的。)

一切正常。当我单击这两个分页中任何一个的分页链接时-它会显示该分页的正确分页结果,简直是完美。

但是,分页链接无法正常显示:

当我单击第2、3、4页等等时,即使我显示了正确的分页页面,分页链接也始终保持在第一个位置-好像它显示的是分页的第一页(甚至显示分页结果的示例2、3、4等)。简而言之,分页链接没有显示在适当的分页页面上。另外,指向分页第1页的链接根本无法点击。

这是我的控制器代码:

    $currentPage=LengthAwarePaginator::resolveCurrentPage('popular')-1;
    $perPage=10;
    $currentPageBlogResults = $items1->slice($currentPage * $perPage, $perPage)->all();
    $items1= new LengthAwarePaginator($currentPageBlogResults, count($items1), $perPage);
    $items1->setPath('offers');
    $items1->setPageName('popular');


    $currentPage=LengthAwarePaginator::resolveCurrentPage('highlow')-1;
    $perPage=10;
    $currentPageBlogResults = $items2->slice($currentPage * $perPage, $perPage)->all();
    $items2= new LengthAwarePaginator($currentPageBlogResults, count($items2), $perPage);
    $items2->setPath('offers');
    $items2->setPageName('highlow');

对于视图:我只用foreach遍历结果,并在每个我下面的echo分页链接下分别像:{{$items1->links() }}{{$items2->links () }}

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

$pageNumber  = (!empty($request->p))? $request->p : 1;
$perPage     = 16;
$offset      = ($pageNumber - 1) * $perPage;

$binding = [];
$binding['status'] = 1;
$sqlQuery  = 'SELECT * FROM TABLE_NAME status= :status';

$sql_count = 'SELECT count(1) as total_records FROM ('. $sqlQuery . ') searchedData';
$result = DB::select($sql_count,$binding);
$resultCount = $result[0]->total_records;

$sqlQuery .= ' LIMIT ' . $offset . ', ' . $perPage;
$searchResult = DB::select($sqlQuery,$binding);
$paginator = new \Illuminate\Pagination\LengthAwarePaginator($searchResult, $resultCount, $perPage, $pageNumber);
$paginator->setPath(route('search'));
$paginator->setPageName("p");

在方法中传递当前页码,在上面的示例中,我传递了$ pageNumber。