Laravel 框架提供了兩種分頁方式:手動分頁和自動分頁。它們之間的主要區別在于如何處理數據和生成分頁鏈接。
手動分頁的工作原理:
Illuminate\Pagination\LengthAwarePaginator
或 Illuminate\Pagination\Paginator
類創建一個分頁實例。示例代碼:
use Illuminate\Pagination\LengthAwarePaginator;
// 獲取當前頁數
$page = request()->input('page', 1);
// 每頁顯示的數據量
$perPage = 10;
// 查詢數據庫以獲取當前頁的數據
$offset = ($page - 1) * $perPage;
$items = DB::table('your_table')->skip($offset)->take($perPage)->get();
// 獲取總記錄數
$total = DB::table('your_table')->count();
// 創建分頁實例
$paginator = new LengthAwarePaginator($items, $total, $perPage, $page, [
'path' => LengthAwarePaginator::resolveCurrentPath(),
]);
// 將分頁實例傳遞給視圖
return view('your_view', ['items' => $paginator]);
paginate
方法來獲取分頁數據。自動分頁的工作原理:
paginate
方法。示例代碼:
// 在控制器中獲取分頁數據
$items = YourModel::paginate(10);
// 將分頁數據傳遞給視圖
return view('your_view', ['items' => $items]);
總結: