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

Laravel统计特定order_id行数异常,求正确实现方法

问题原因与解决方法

你的问题出在firstOrFail()的使用上:

  • firstOrFail()会返回匹配条件的单条模型实例,而非查询构造器或结果集合。在这个单个实例上调用count()时,它会直接统计整个client_has_orders表的总行数,这就是你得到全表数量的原因。

正确写法1:直接统计(推荐)

直接在查询构造器上调用count(),会生成精准的统计SQL,性能最优:

$rowCount = clientHasOrder::where('order_id', $id)->count();
dd($rowCount);

正确写法2:先取集合再统计(若需后续使用记录)

如果需要先获取所有匹配的记录,再统计数量,可先用get()获取结果集合,再调用集合的count()方法:

$clientOrders = clientHasOrder::where('order_id', $id)->get();
$rowCount = $clientOrders->count();
dd($rowCount);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:45:39