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