Laravel-从多对多表获取计数

Laravel-从多对多表获取计数,laravel,count,many-to-many,Laravel,Count,Many To Many,因此,我想为一名员工统计不同阶段的所有项目($id)。比如: 排队-3 进行中-7 发射-5 我有一个项目表、一个员工表和一个员工项目表 如何为特定员工获得项目的阶段?这不起作用,因为它列出了每个状态,旁边只有1个: @foreach ($employee->projects as $project) <h3>{{ $project->stage }}</h3> <h3>{{ count($project->stage) }}&l

因此,我想为一名员工统计不同阶段的所有项目($id)。比如:

排队-3 进行中-7 发射-5

我有一个项目表、一个员工表和一个员工项目表

如何为特定员工获得项目的阶段?这不起作用,因为它列出了每个状态,旁边只有1个:

@foreach ($employee->projects as $project)
   <h3>{{ $project->stage }}</h3>
   <h3>{{ count($project->stage) }}</h3>
@endforeach
@foreach($employee->projectas$project)
{{$project->stage}
{{count($project->stage)}
@endforeach

有什么办法吗?

您可以在员工模型中使用以下方法:

public function projectsByStage() {
    return $this->belongsToMany('App\Project')->groupBy('stage');
}
这将按项目阶段对员工的项目进行分组

然后在你的刀片模板

@foreach ($employee->projectsByStage as $stage => $projects)
   <h3>{{ $stage }}</h3>
   <h3>{{ count($projects) }}</h3>
@endforeach
@foreach($employee->projectsByStage as$stage=>$projects)
{{$stage}
{{count($projects)}
@endforeach
编辑:

我想你不需要另一种方法。您可以直接执行以下操作:

@foreach ($employee->projects->groupBy('stage') as $stage => $projects)
   <h3>{{ $stage }}</h3>
   <h3>{{ count($projects) }}</h3>
@endforeach
@foreach($employee->projects->groupBy('stage')作为$stage=>$projects)
{{$stage}
{{count($projects)}
@endforeach