我正在使用 Laravel 7。
我有 4 个表User、Project、UserProject和ProjectSite。表之间的关系如下
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的总和