在 Laravel 中,手動創建分頁可以使用 Illuminate\Pagination\LengthAwarePaginator
類。以下是一個簡單的手動分頁示例:
首先,確保你已經安裝了 Laravel 框架并正確配置了數據庫連接。然后,在控制器中編寫如下代碼:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Facades\DB;
class ManualPaginationController extends Controller
{
public function index(Request $request)
{
// 獲取當前頁數,默認為 1
$page = $request->input('page', 1);
// 每頁顯示的記錄數
$perPage = 10;
// 從數據庫中獲取所有記錄
$allRecords = DB::table('your_table')->get();
// 計算總記錄數
$total = count($allRecords);
// 根據當前頁數和每頁顯示的記錄數,獲取要顯示的記錄
$records = $allRecords->slice(($page - 1) * $perPage, $perPage)->values();
// 創建 LengthAwarePaginator 實例
$paginator = new LengthAwarePaginator($records, $total, $perPage, $page, [
'path' => LengthAwarePaginator::resolveCurrentPath(),
]);
// 將分頁數據傳遞給視圖
return view('your_view', ['paginator' => $paginator]);
}
}
在上面的代碼中,我們首先獲取當前頁數(默認為 1)和每頁顯示的記錄數(例如 10 條)。然后,我們從數據庫中獲取所有記錄,并計算總記錄數。接下來,我們根據當前頁數和每頁顯示的記錄數,獲取要顯示的記錄。最后,我們創建一個 LengthAwarePaginator
實例,并將其傳遞給視圖。
在視圖文件(例如 your_view.blade.php
)中,你可以使用以下代碼顯示分頁鏈接:
<div class="container">
<table class="table">
<!-- 表格內容 -->
</table>
<!-- 分頁鏈接 -->
{{ $paginator->links() }}
</div>
這樣,你就可以在 Laravel 中實現手動分頁了。請注意,這個示例僅適用于簡單的分頁場景。對于更復雜的需求,你可能需要使用 Eloquent ORM 或查詢構建器來實現分頁。