2017-03-09 43 views
1

因此,我想獲得一個僱員在不同階段所有項目的計數($ id)。因此,像:Laravel - 從多對多表中獲取計數

排隊 - 3 在進步 - 7 推出 - 5

我有一個項目表和僱員表和employee_project表。

如何獲得特定員工項目的階段?這不工作,因爲它列出了每狀態,只是1旁邊:

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

任何想法如何做到這一點?

回答

1

您可以在員工模型具有方法:

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->projects->groupBy('stage') as $stage => $projects) 
    <h3>{{ $stage }}</h3> 
    <h3>{{ count($projects) }}</h3> 
@endforeach 

groupBy method

+0

謝謝!你編輯的代碼完美運作! – robk27