我有问题,我有2个表(帖子,评论),我想选择所有帖子+他们的评论数量。 我可以在帖子中创建一个列“评论”并在那里写入计数器,但我认为这是一个糟糕的解决方案,所以我在mysql中寻找像虚拟字段/列这样的东西来获取帖子查询中的评论数量。 我可以在Laravel中这样做吗?
答案 0 :(得分:1)
在Comment
模型中:
public function post(){
return $this->belongsTo('Post', 'post_id');
}
在Post
模型中:
public function comments(){
return $this->hasMany('Comment', 'post_id');
}
在您的控制器中,获取包含所有评论的帖子。
$post = Post::with('comments')->find(1);
在您的视图中,显示帖子及其所拥有的评论数量。假设您的帖子有title
字段。
Post Title: {{ $post->title }}
The post has {{ $post->comments->count() }} comments