编程

laravel 分页怎么带参数

1196 2023-04-25 18:40:00

在使用 Laravel 分页功能时,我们可能需要在每个页面中携带一些参数,比如搜索关键字、排序方式等等。本文将介绍如何在 Laravel 中实现带参数的分页功能。

首先,我们需要了解 Laravel 分页功能的基本用法。在控制器中使用以下代码即可对数据进行分页:

use Illuminate\Pagination\Paginator;

$data = DB::table('table_name')->paginate(10);

return view('view_name', ['data' => $data]);

其中,将从表 table_name 中获取所有数据,并将其分页显示,每页显示 10 条数据。最终将分页数据传递到视图页面 view_name 中,变量名为 data

如果我们需要在分页链接中携带参数,可以在视图页面中使用 Laravel 提供的 appends() 方法。例如,我们需要在分页链接中携带一个名为 search 的搜索关键字参数,可以在视图页面中这样写:

{{ $data->appends(['search' => $keyword])->links() }}

其中,$keyword 为搜索关键字。appends() 方法接受一个数组参数,将其中的键值对添加到分页链接中。links() 方法将生成分页链接。

上述代码将生成类似如下的分页链接:

http://example.com?page=2&search=keyword

这样,在每页中点击分页链接时,搜索关键字参数 search=keyword 将会自动携带到链接中。

除了携带单个参数,我们还可以同时携带多个参数。例如,我们需要在分页链接中携带一个名为 search 的搜索关键字参数和一个名为 sort 的排序方式参数,可以这样写:

{{ $data->appends(['search' => $keyword, 'sort' => $sort])->links() }}

在控制器中获取这些参数非常简单,只需使用 Laravel 提供的 request() 方法即可。例如,获取名为 search 的搜索关键字参数和名为 sort 的排序方式参数,可以这样写:

$search = request('search');

$sort = request('sort');

以上代码将分别获取名为 searchsort 的参数值,如果不存在则默认为 null

在 Laravel 中实现带参数的分页功能非常简单,只需使用 appends() 方法即可轻松携带参数。在掌握了基本用法之后,我们可以根据具体实际需求自由定制参数及其值,实现更加灵活的分页功能。