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

Laravel 5环境下如何获取某篇帖子的所有评论用户?

获取某篇帖子的所有评论用户(Laravel 5)

嘿,我来帮你解决这个问题!要获取某篇帖子的所有评论用户,咱们可以通过Laravel的关联查询来实现,具体步骤和方法如下:

第一步:完善模型关联

首先,你的PostGroup模型目前还没有和PostComment建立一对多的关联,咱们先补上这个关联,这样能更方便地从帖子直接获取评论:

// PostGroup.php
public function comments()
{
    return $this->hasMany('App\PostComment');
}

如果后续需要从用户维度查询他的评论,也可以在User模型里添加评论关联:

// User.php
public function comments()
{
    return $this->hasMany('App\PostComment');
}

方法一:从帖子出发,获取评论及关联用户

这种方法适合你需要同时查看评论内容和对应用户信息的场景,还能避免N+1查询问题:

// 先获取目标帖子实例,$postId是你要查询的帖子ID
$postGroup = PostGroup::find($postId);

// 预加载评论及其关联的用户
$commentsWithUsers = $postGroup->comments()->with('user')->get();

// 提取所有评论用户,用unique('id')去重(如果同一个用户多次评论该帖子)
$commentUsers = $commentsWithUsers->pluck('user')->unique('id');

方法二:直接查询评论过该帖子的用户

如果只需要获取用户列表,不需要评论内容,可以用这种更直接的方式:

// $postId是目标帖子的ID
$commentUsers = User::whereHas('comments', function ($query) use ($postId) {
    $query->where('post_group_id', $postId);
})->get();

这样就能轻松拿到某篇帖子的所有评论用户啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:42:31