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

Laravel 10 Scout+Algolia实现count与分页方法报错求助

Laravel 10 Scout 分页与总数统计解决方案

问题原因

getTotalCount方法在Laravel Scout的新版本(含Laravel 10配套的Scout版本)中已被移除,该方法仅存在于旧版本(如Laravel 8的Scout)中,因此调用时会抛出方法不存在的错误。

解决方案

Laravel 10 Scout的paginate()方法返回的是LengthAwarePaginator实例,该实例本身已封装了总记录数、分页信息等,无需额外调用废弃方法:

修正后的代码

if(empty($page)) {
    $returnedData = User::search($key)->get(); // 获取全部数据
} else {
    $returnedData = User::search($key)
        ->paginate($rowsPerPage, null, null, $page); // 获取指定页的数据
    $totalRowsCount = $returnedData->total(); // 直接从分页器实例获取总条数
}

单独获取搜索总数(无需分页数据)

如果只需要统计匹配搜索条件的总记录数,不需要获取分页数据,可以直接使用count()方法:

$totalRowsCount = User::search($key)->count();

补充说明

  • LengthAwarePaginator实例除了total()方法外,还提供了currentPage()、lastPage()、perPage()等常用分页方法,可直接满足前端分页组件的需求。
  • 你的环境版本(Laravel 10.34.2 + Algolia PHP客户端3.4)完全支持上述方法,无需调整额外依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 15:06:09