laravel中的陣列分頁實現
阿新 • • 發佈:2019-01-07
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
...
$searchResults = [
'item1',
'item2',
'item3',
'item4',
'item5',
'item6',
'item7',
'item8',
'item9',
'item10'
];
//獲取當前的分頁數,就是第6這樣的
$currentPage = LengthAwarePaginator::resolveCurrentPage();
//例項化collect方法
$collection = new Collection($searchResults);
//定義一下每頁顯示多少個數據
$perPage = 5;
//獲取當前需要顯示的資料列表
$currentPageSearchResults = $collection ->slice($currentPage * $perPage, $perPage)->all();
//建立一個新的分頁方法
$paginatedSearchResults= new LengthAwarePaginator($currentPageSearchResults, count($collection), $perPage);
return view('search', ['results' => $paginatedSearchResults]);
}
隨便翻譯了一下,可能會有不正確的地方,但是差不多就是這樣了吧,然後可能還有一些問題,就是分頁的時候,後面的url連結就不正確了,我用的是laravel5.2,就是這裡的這個問題,我的當前連結是www.abc.com/myUrl/a,但是第二頁就直接是www.abc.com/?2,舉個例子,這個可能在5.2版本不可避免的東西,正確的做法就是
$paginatedSearchResults = $paginatedSearchResults->setPath('/myUrl/a');
具體情況具體分析吧,先就這樣吧!