2014-03-03 43 views
0

我有一个问题,我有2个表(帖子,评论),我想选择所有帖子+他们的评论数。 我可以在帖子中创建一列“注释”并在其中写入计数器,但我认为这是一个糟糕的解决方案,所以我正在寻找诸如mysql中的虚拟字段/列以获取帖子查询中的评论数量。 我可以在Laravel做这个吗?laravel虚拟域/ cloumn查询?

感谢

+0

是的,你可以在Laravel做到这一点,这很容易。你有没有在两张桌子之间建立你们的关系? – user3158900

+0

是的我在模式中设置了外键,在我的模型中设置了hasMany和belongsTo功能。 – user3038158

回答

0

在你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 
+0

谢谢,但我忘了是,我需要在数组中的所有职位,并解析它为json,因为我会用angularjs他们,所以数组不是问题,但我可以添加一个字段“评论”这个数组有多少条评论? – user3038158