计算Laravel的关系数量

时间:2017-02-02 19:04:31

标签: php laravel laravel-5 eloquent laravel-5.3

我有一个雄辩的模型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给出的方法可以在对象上使用)

1 个答案:

答案 0 :(得分:3)

使用withCount()方法计算关系中的结果数量:

  

如果您想要计算关系中的结果数而不实际加载它们,您可以使用withCount方法,该方法会在生成的模型上放置{relation} _count列

User::withCount('referrals')->get();