Laravel withCount指定关系表的列(API/Eloquent)
在我的项目中,我创建了一个表POST和另一个POST_视图(最后一个得到了用户的每次访问,并获取ip和POST_id) 我的职位关系如下: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数,我没有找到任何方法来做这样的事
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')
apost
可以有多个视图,对吗?然后你必须使用一个有很多关系的。