laravel

laravel手动分页的代码示例有哪些

小樊
81
2024-09-10 21:33:57
栏目: 编程语言

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

0
看了该问题的人还看了