有许多分类(Category.php)在我的网站的索引,其中有许多委员会(Board.php)。 董事会可以有很多主题(Topic.php),并且主题可以有很多回复(Reply.php)。Laravel的hasMany关系计数
我想获取当前董事会的回复数,可能与预先加载。
我有一个办法,但它执行了太多的查询。我创建了一个post_count属性,然后遍历每个主题并收集多个回复。有没有办法选择当前主板的所有回复?
public function getPostCountAttribute()
{
$count = 0;
foreach ($this->topics()->withCount('replies')->get() as $topic) {
$count += $topic->replies_count;
}
return $count;
}
不应该whereIn()有两个参数?缺少参数2为Illuminate \ Database \ Query \ Builder :: whereIn()..我改为whereIn('topic_id',$ topic_ids),没有结果。 – dinomuharemagic
@core_m。我更新了。 – KmasterYC
打印并查看$ topics_ids是否提取您的ID。代码似乎没有错。 –