我有一个雄辩的模型User,它与自身有1:N关系(单个用户可以引用多个用户,单个用户只能由一个用户引用)。
/*
* Get the user's referrals
*/
public function referrals()
{
return $this->belongsToMany('App\User');
}
/*
* Get the referred user's parent referral
*/
public function parentReferral()
{
return $this->belongsTo('App\User');
}
Laravel是否提供了一个可以统计所有belongsToMany关系的本地方法?
(我可以这样做的一个简单方法就是获取父用户的id并手动计算所有外观,但我想知道是否有Laravel给出的方法可以在对象上使用)
答案 0 :(得分:3)
使用withCount()
方法计算关系中的结果数量:
如果您想要计算关系中的结果数而不实际加载它们,您可以使用withCount方法,该方法会在生成的模型上放置{relation} _count列
User::withCount('referrals')->get();