阅读量:0
在 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 或查询构建器来实现分页。