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

Laravel withCount指定关系表的列(API/Eloquent),laravel,api,count,eloquent,relation,Laravel,Api,Count,Eloquent,Relation,在我的项目中,我创建了一个表POST和另一个POST_视图(最后一个得到了用户的每次访问,并获取ip和POST_id) 我的职位关系如下: public function view() { return $this->belongsTo(PostView::class); } 我的API查询如下所示: $posts = Post::withCount('view')->get(); 所有这些都有效,但是我需要计算关系表PostView中的IP数,我没有找到任何方法来做这样的事

在我的项目中,我创建了一个表POST和另一个POST_视图(最后一个得到了用户的每次访问,并获取ip和POST_id)

我的职位关系如下:

public function view() {
return $this->belongsTo(PostView::class);
 } 
我的API查询如下所示:

$posts = Post::withCount('view')->get();
所有这些都有效,但是我需要计算关系表PostView中的IP数,我没有找到任何方法来做这样的事情


如果有人有一个解决方案,你可以救我的命…

你不能直接用count来实现这一点。count用于计算与当前模型直接相关的其他模型,因为我可以看到你有一对一的后期视图关系,这看起来很奇怪,但你可以尝试以下替代解决方案:

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

此查询将返回“视图”旁边的ip计数

您已将
视图
定义为关系。您正在使用视图作为计数相关模型。因此,您必须将
视图定义为关系,或者使用
Post::withCount('view')->get()
抱歉,我写了一篇文章,犯了一个错误,目前计数正常,但我需要说:
withCount('view.ip')
a
post
可以有多个
视图,对吗?然后你必须使用一个
有很多关系的