【问题标题】:Count amount of relations in Laravel计算 Laravel 中的关系数量
【发布时间】:2017-06-20 00:04:05
【问题描述】:

我有一个雄辩的模型用户,它与自己是 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 是否有可以在对象上使用的方法)

【问题讨论】:

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


    【解决方案1】:

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

    如果您想在不实际加载关系的情况下计算关系结果的数量,您可以使用 withCount 方法,该方法会在结果模型上放置一个 {relation}_count 列

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

    【讨论】:

    • 非常感谢,自行搜索,但由于某种原因在文档中找不到:)
    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2021-03-19
    • 1970-01-01
    • 2012-10-23
    • 2015-07-24
    • 1970-01-01
    • 2014-04-16
    相关资源
    最近更新 更多