Laravel 11中withQueryString()关联预加载分页报错求助
解决Laravel 11中预加载后分页调用withQueryString()报错的问题
你遇到的Undefined method withQueryString()报错大概率是IDE的类型推断错误,而非Laravel代码逻辑问题——无论是否使用with('userType')关联预加载,paginate()返回的都是LengthAwarePaginator实例,该类原生支持withQueryString()方法。
以下是几种可行的解决方式:
- 添加类型注释修正IDE识别
在分页代码上方添加类型提示,强制IDE识别返回对象的类型:
/** @var \Illuminate\Pagination\LengthAwarePaginator $users */ $users = $usersQuery->paginate(10)->withQueryString();
- 拆分链式调用
将分页与查询字符串操作拆分为两步,避免IDE误判对象类型:
$users = $usersQuery->paginate(10); $users->withQueryString();
- 清除IDE缓存
如果使用PHPStorm等IDE,执行File -> Invalidate Caches...并重启,多数类型推断类的错误都能通过这个操作解决。
另外可以确认下Laravel版本(执行composer show laravel/framework),withQueryString()从Laravel 7起就已存在,Laravel 11完全支持该方法。
内容的提问来源于stack exchange,提问作者Vira Damayanti
相关产品推荐
相关产品推荐

