如何在帖子列表页面中检索所有帖子的评论

时间:2019-04-09 12:30:04

标签: php laravel

我的问题是:我想显示用户对每个帖子的评论数量。 我有一个帖子管理器,但无法获取每个帖子的ID。

public function myposts(Post $post,Pcomment $pcomment){
    if(Auth::check()){
        $agent = new Agent();
        $posts = Post::where('user_id', auth()->user()->id)->orderBy('id', '-ASC')->paginate(5);
        $pcomments = $pcomment->where('post_id',"=", $post->id)->get();
        return view('posts.myposts',compact('posts','agent','pcomments'));
    }else{
        return redirect('/login');
    }
}

2 个答案:

答案 0 :(得分:1)

尝试以下代码,希望对您有所帮助

  

Post.php(模型)

public function comments() {
    return $this->hasMany('App\Comment');
}

  

控制器

->withCount('comments')函数用于对每个帖子的评论计数。

$posts = Post::with('comments')->withCount('comments')->where('user_id', auth()->user()->id)->orderBy('id', '-ASC')->paginate(5);

答案 1 :(得分:0)

如果您已正确设置了模型之间的关系,则

class Post extends Model
{
    /**
     * Get the comments for the blog post.
     */
    public function comments()
    {
        return $this->hasMany('App\Comment');
    }
}

然后,您可以运行以下命令以获取帖子上的所有用户评论

$user_comments = $post->comments()->where('user_id', auth()->user()->id)->get();

如果您只想计数,请执行以下操作

$user_comment_count = $post->comments()->where('user_id', auth()->user()->id)->count();