0

我正在使用 Laravel 7。
我有 4 个表UserProjectUserProjectProjectSite。表之间的关系如下

class User extends Authenticatable
{
    public function project()
    {
        return $this->hasMany(UserProject::class, 'user_id');
    }
}

class UserProject extends Model
{
    public function project()
    {
        return $this->belongsTo(Project::class, 'project_id');
    }
}

class Project extends Model
{
    function site()
    {
        return $this->hasMany(ProjectSite::class, 'project_id');
    }
}

我试图在不运行任何循环的情况下获取属于相关用户的 ProjectSites 的计数。
到目前为止,我已经编写了一个代码,可以让我计算每个项目的 ProjectSite 数量。

$user()->project()->with(['project'=> function ($query) {
    $query->withCount('site');
}])->get()

这产生了我以下的输出

Illuminate\Database\Eloquent\Collection {#2097 ▼
  #items: array:2 [▼
    0 => App\UserProject {#2093 ▼
      #attributes: array:12 [▶]
      #relations: array:1 [▼
        "project" => App\Project {#2092 ▼
          #attributes: array:15 [▼
            "id" => 3
            "site_count" => 64
          ]
      ]
    }
  ]
}

我想要的是得到site_count的总和

4

0 回答 0