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

Laravel查询构造器调用paginate后调用withQueryString提示方法不存在

报错原因分析

Method Illuminate\Database\Eloquent\Collection::withQueryString does not exist.

该报错的核心逻辑是:withQueryString() 是 Laravel 分页器类专属的方法,仅 Illuminate\Pagination 命名空间下的分页实例可以调用,你当前代码中的 $modeller 实际为 Eloquent 集合实例,集合类没有定义该方法,因此触发调用错误。


解决方案
  • 确认控制器最终输出的是分页实例
    你贴出的控制器代码中,最终执行 $modeller = $modeller->paginate(18); 逻辑是正确的,正常流程下会返回分页实例。需要排查是否有分支逻辑提前调用了 get()、all() 等方法,将 $modeller 覆盖为集合实例,调整分支逻辑保证最终赋值给 $modeller 的是 paginate() 方法的返回值即可。
  • 低版本 Laravel 兼容处理
    withQueryString() 是 Laravel 7.x 版本才新增的分页方法,如果你的项目 Laravel 版本低于 7,可以直接用功能完全等价的 appends() 方法替代,Blade 模板代码修改为:
<div class="float-right">{{ $modeller->appends(request()->query())->links()}}</div>
  • 排查视图变量修改逻辑
    检查 Blade 模板中调用分页方法的代码前,是否对 $modeller 执行过 filter()、map() 等返回集合的操作,如果有这类操作,建议提前渲染分页链接,或者单独保留原始分页实例不做集合处理,避免分页实例被覆盖为集合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:15:04