Laravel/Livewire中count数据无法在blade视图显示求助
从你描述的情况来看,核心问题大概率是你把分页数据和统计数据分开查询了,两者没有关联——单独查的$count数据和视图里遍历的$projekte分页集合是两个独立的数据集,所以遍历$projekte时自然拿不到games_count属性。
下面是具体的修正步骤和排查方向:
修正控制器查询逻辑,链式整合withCount
不要分开获取分页数据和统计数据,直接在分页查询时链式调用withCount,这样分页返回的每个模型实例都会自带games_count属性:// 正确写法:将withCount整合到分页查询中 $projekte = Projekt::withCount('games')->paginate(10); return view('你的视图名称', compact('projekte'));如果你之前是先分页再单独查询count,那两个集合完全独立,分页的
$projekte里根本没有games_count字段,单独dd$count能看到值,但和视图用的不是同一批数据。检查模型关联方法名
确认Projekt模型里的关联方法确实叫games(),比如:public function games() { return $this->hasMany(Game::class); // 对应你的关联类型 }withCount('games')的参数必须和关联方法名完全一致,大小写、拼写都不能错,比如方法是Games()的话,就要写withCount('Games')。核对视图里的变量拼写
确保视图里遍历的是$projekte,循环项的属性是$project->games_count——注意单复数(projekte是复数,project是单数)、下划线的位置,别写成game_count或者gamesCount。确认分页集合的结构
在控制器里直接dd$projekte,查看每个项目对象里是否包含games_count字段,而不是单独dd$count。如果分页模型实例里有这个字段,视图里肯定能正常输出。
内容的提问来源于stack exchange,提问作者Sven

