Laravel手动创建数组分页
有时候可能会遇到这种情况,$dataA
和$dataB
是从数据库取出的两个不同的数据集合,需要同时将$dataA
和$dataB
分配到视图并进行分页展示,那这种情况怎么办呢?
//控制器中
public function index(LiveService $liveService, Request $request)
{
//数据A
$dataA = User::where('status', 1)->get()->toArray();
//数据B
$dataB = User::where('status', 2)->get()->toArray();
$data = array_merge($dataA, $dataB);
//当前页数 默认1
$page = $request->page ?: 1;
//每页的条数
$perPage = 4;
//计算每页分页的初始位置
$offset = ($page * $perPage) - $perPage;
//实例化LengthAwarePaginator类,并传入对应的参数
$data = new LengthAwarePaginator(array_slice($data, $offset, $perPage, true), count($data), $perPage,
$page, ['path' => $request->url(), 'query' => $request->query()]);
return view('admin.users.index', compact('data'));
}
//视图中
{{ $data->links() }}