📌  相关文章
📜  方法 Illuminate\Support\Collection::links 不存在. (1)

📅  最后修改于: 2023-12-03 14:55:04.845000             🧑  作者: Mango

方法 Illuminate\Support\Collection::links 不存在.

当调用 Illuminate\Support\Collection 类的 links() 方法时,可能会遇到如上所示的错误。本篇介绍该错误的原因和解决方法。

原因

links() 方法是用于生成分页链接的,因此只有在进行分页操作后才能使用该方法。如果你没有在使用 paginate() 方法进行分页操作,就会出现该错误。

解决方法
1. 分页操作

首先要确保在使用 links() 方法之前已经进行了分页操作。比如,你可以在查询语句中使用 paginate() 方法:

$users = DB::table('users')->paginate(15);

然后再使用 links() 方法:

{{ $users->links() }}
2. 别名

你也可以在 Collection 类中使用 forPage() 方法进行分页操作,并使用 getUrlRange() 方法生成分页链接:

$collection = collect([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);

$perPage = 3;

$page = 2;

$paginator = new \Illuminate\Pagination\LengthAwarePaginator(
    $collection->forPage($page, $perPage), 
    $collection->count(), 
    $perPage, 
    $page, 
    ['path' => \Illuminate\Support\Facades\Request::url(), 'query' => []]
);

$paginator->getUrlRange(1, $paginator->lastPage());

注意,需要导入 Illuminate\Pagination 命名空间。

3. 引入分页包

你还可以检查是否已经安装了 laravel/framework 包。如果未安装,执行以下命令安装该包:

composer require "laravel/framework:^5.8"

安装完成后,重新运行程序即可正常使用 links() 方法。

结论

在使用 links() 方法之前,必须先进行分页操作。你可以使用 paginate()forPage() 方法进行分页操作,也可以检查是否已经安装了 laravel/framework 包。