代码之家  ›  专栏  ›  技术社区  ›  Hardist

拉氏关系总计数

  •  -2
  • Hardist  · 技术社区  · 7 年前

    我有一个 Category 模型与A Description 模型。

    当在列表中显示我的类别时,我还希望包括所有类别的相关描述的总数,但不必加载所有的描述本身。

    对每个单独的类别对象使用WithCount:

    auth()->user()->categories()->withCount('descriptions')->get()
    

    所以上面返回所有类别并添加 descriptions_count 对象中的值,这不是我想要的。

    我只需要一个总数描述的所有类别。要做到这一点,不必急于加载描述本身,有什么简单易行的方法吗?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Namoshek    7 年前

    我想你想要的是 whereHas() 以下内容:

    Description::whereHas('category', function ($query) {
        $query->where('user_id', \Auth::id());
    })->count();