You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10搜索功能报错:Method Illuminate\Database\Eloquent\Collection::links不存在

问题根源

当你在视图中调用links()方法时,Laravel要求传入的是分页器实例(如LengthAwarePaginator),但你的搜索逻辑返回的是普通的Eloquent Collection集合——这类集合没有links()方法,因此触发报错。

修复步骤

1. 确保搜索分支保持分页查询

检查PackingController中的搜索逻辑,不能用get()获取全部结果,必须继续使用paginate()方法维持分页器实例。示例代码如下:

public function index(Request $request)
{
    // 初始化查询构造器
    $query = Packing::query();

    // 处理搜索条件
    if ($request->filled('search')) {
        $searchTerm = $request->input('search');
        $query->where('your_column', 'like', "%{$searchTerm}%")
              // 可添加更多搜索字段
              ->orWhere('another_column', 'like', "%{$searchTerm}%");
    }

    // 执行分页查询,而非get()
    $packings = $query->paginate(10); // 10为每页显示数量,按需修改

    return view('packings.index', compact('packings'));
}

2. 确认视图分页代码正确

保持视图中的分页链接代码不变,确保调用的是分页器的links()方法:

<div class="pagination-container">
    {{ $packings->links() }}
</div>

3. 携带搜索参数到分页链接(可选但关键)

默认分页链接不会携带搜索关键词,切换页码时会丢失搜索条件。可以通过appends()方法传递参数:

在控制器中修改分页代码:

$packings = $query->paginate(10)->appends($request->only('search'));

或者直接在视图中处理:

{{ $packings->appends(request()->query())->links() }}

常见错误排查

  • 检查搜索分支是否误用了get()、all()或collect(),这些方法会返回普通集合而非分页器。
  • 可在控制器中用dd($packings)查看变量类型,正确类型应为Illuminate\Pagination\LengthAwarePaginator。

内容的提问来源于stack exchange,提问作者Eyowww

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:58:05