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

Laravel关联查询在controller正常运行但blade无法显示withCount统计值

问题根因
  • 你的查询结尾调用了first()方法,返回的是单个Types模型实例,不是模型集合,直接遍历$types属于逻辑错误,遍历单个模型对象只会读取它自身的公开属性,无法正确获取预加载的关联数据下的统计值。
  • 你在purposes关联的闭包查询中调用了withCount('pool'),所以统计值是挂载在每一条purposes关联模型上的,字段名是pool_count,你代码里写的pool_purposes_count是错误的命名,自然无法读取。
解决方法
  1. 可以先优化查询写法,Laravel支持更简洁的嵌套关联预加载写法,功能和你原有代码一致:
$types = Types::where('id', '=', '2')
    ->with(['purposes' => function ($query) {
        $query->withCount('pool');
    }])
    ->first();
  1. 调整Blade中的遍历逻辑,遍历$types下预加载的purposes关联集合即可:
@foreach($types->purposes as $item)
    {{ $item->pool_name }}
    {{ $item->pool_count }}
@endforeach
排查建议

如果调整后还是无法正常取值,可以在Blade中先输出{{ dd($types->purposes->toArray()) }}打印关联数据结构,确认统计字段是否正常挂载、字段名是否匹配即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 02:45:02