Laravel withCount指定关系表的列(API / Eloquent)

时间:2018-05-14 15:55:45

标签: laravel api count eloquent relation

在我的项目中,我创建了一个表POSTS和另一个POST_VIEWS(最后一个获得了用户的每次访问并采取了ip和post_id)

我的帖子的关系是这样的:

public function view() {
return $this->belongsTo(PostView::class);
 } 

我的API查询是这样的:

$posts = Post::withCount('view')->get();

所有这些都有效,但我需要计算关系表PostView中的IP数量,我没有找到任何办法做这样的事情...

如果有人有解决方案,你可以挽救我的生命......

1 个答案:

答案 0 :(得分:0)

你无法直接实现这一点,使用计数来计算与当前模型直接相关的其他模型,因为我可以看到你有一对一的后视图关系看起来很奇怪< / em>但您可以尝试另一种解决方案:

$posts = Post::with(['view'=>function($query){
             $query->withCount('ip');
         }])->get();

这个查询会让你在“视图”旁边看到ip计数。 。