1. 程式人生 > >Laravel5.5+ 對陣列(物件陣列)資料進行分頁

Laravel5.5+ 對陣列(物件陣列)資料進行分頁

在使用 Laravel 時,除了在 ORM 中使用分頁外,有些時候也需要對用原生 sql 查詢的資料進行分頁,該查詢資料可能是陣列,也可能是物件陣列.

支援陣列格式:

$goods = [
                [],[],[]
            ];

 陣列物件格式:

以下封裝了一個方法可供使用

   if (!function_exists("page_with_array")){
            function page_with_array($request,$array_item){
                $currentPage = \Illuminate\Pagination\LengthAwarePaginator::resolveCurrentPage();
                $itemCollection = collect($array_item);
                $perPage = env('PAGE_SIZE'); // 每頁數量
                $currentPageItems = $itemCollection->slice(($currentPage*$perPage)-$perPage,$perPage)->all();
                $paginatedItems = new \Illuminate\Pagination\LengthAwarePaginator($currentPageItems,count($itemCollection),$perPage);
                return $paginatedItems->setPath($request->url());

            }
    }

測試結果

 

參考:

https://arjunphp.com/laravel-5-pagination-array/