我的问题是:我想显示用户对每个帖子的评论数量。 我有一个帖子管理器,但无法获取每个帖子的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');
}
}
答案 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();