laravel 分页问题

从接口获取的数据 合并 数据库数据后的数组 如何分页显示

噜噜哒
浏览 697回答 3
3回答

达令说

手动创建分页器 有时候你可能想要通过传递数组数据来手动创建分页实例, 你可以基于自己的需求通过创建 Illuminate\Pagination\Paginator 或 Illuminate\Pagination\LengthAwarePaginator 实例来实现。 Paginator 类不需要知道结果集中数据项的总数; 不过,正因如此,该类也没有提供获取最后一页索引的方法。 LengthAwarePaginator 接收参数和 Paginator 几乎一样,只是,它要求传入结果集的总数。 换句话说,Paginator 对应 simplePaginate 方法, 而LengthAwarePaginator 对应 paginate 方法。 注:当手动创建分页器实例的时候,应该手动对传递到分页器的结果集进行“切片”, 如果你不确定怎么做,查看 PHP 函数 array_slice。 ---上面来自 laravel 学院手册 use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Pagination\Paginator; use Illuminate\Http\Request; # 仅做演示 # function userList(Request $request) { $users = [ ['username'=>'zhangsan', 'age'=>26], ['username'=>'lisi', 'age'=>23], ['username'=>'wangwu', 'age'=>62], ['username'=>'zhaoliu', 'age'=>46], ['username'=>'wangmazi', 'age'=>25], ['username'=>'lanzi', 'age'=>24], ['username'=>'pangzi', 'age'=>21] ]; $perPage = 3; if ($request->has('page')) { $current_page = $request->input('page'); $current_page = $current_page <= 0 ? 1 :$current_page; } else { $current_page = 1; } $item = array_slice($users, ($current_page-1)*$perPage, $perPage); //注释1 $total = count($users); $paginator =new LengthAwarePaginator($item, $total, $perPage, $currentPage, [ 'path' => Paginator::resolveCurrentPath(), //注释2 'pageName' => 'page', ]); $userlist = $paginator->toArray()['data']; return view('userlist', compact('userlist', 'paginator')); } ---来自百度
打开App,查看更多内容
随时随地看视频慕课网APP