2016-12-17 3 views
0

먼저 다른 여러 가지를 시도했지만 결과가 나타나지 않는 것 같습니다.Laravel - 여러 개의 외래 키와 ID 받기

컨트롤러 :

public function all() 
{ 
    $projects = Project::all(); 

    foreach($projects as $project) { 
     $pid = $project->id; 
    } 

    $am = DB::table('projects') 
     ->join('employees', 'projects.am_id', '=', 'employees.id') 
     ->where('projects.id', '=', $pid) 
     ->select('projects.id', 'projects.am_id', 'employees.name') 
     ->first(); 

    $pm = DB::table('projects') 
     ->join('employees', 'projects.pm_id', '=', 'employees.id') 
     ->where('projects.id', '=', $pid) 
     ->select('projects.id', 'projects.pm_id', 'employees.name') 
     ->first(); 

    return view('projects/all', [ 
     'projects' => $projects, 'am' => $am, 'pm' => $pm 
     ]); 
} 

보기 :

<h1 class="text-center">All Projects</h1> 
      @foreach ($projects as $project) 
       <div class="row"> 
       <div class="col-md-6 text-center"> 
       <h3><a href="">{{ $project->company }}</a></h3> 
       </div> 
       <div class="col-md-6 text-center"> 
       <p>Account Manager: {{ $am->name }}</p> 
       <p>Project Manager: {{ $pm->name }}</p> 
       </div> 
       </div> 
       <hr> 
      @endforeach 

그래서 나는 각 프로젝트에 대한 회사 이름과 프로젝트 관리자와 계정 관리자를 보려는. 내가보고있는 것은 모든 프로젝트에서 같은 사람입니다. 각 프로젝트에 대해 올바른 관리자를 선택하지 않습니다.

컨트롤러에서 for 루프를 수행하여 프로젝트 ID를 가져오고 where 절에서이를 전달했지만 작동하지 않았습니다.

이 문제를 해결하는 방법에 대한 아이디어가 있으십니까?

감사합니다!

답변

1

$ am 및 $ pm에 대한 쿼리가 foreach 루프 안에 없습니다. 그래서 당신은 단지

<h1 class="text-center">All Projects</h1> 
@foreach ($projects as $project) 
    <div class="row"> 
     <div class="col-md-6 text-center"> 
      <h3><a href="">{{ $project->company }}</a></h3> 
     </div> 
     <div class="col-md-6 text-center"> 
      <p>Account Manager: {{ $project->am->name }}</p> 
      <p>Project Manager: {{ $project->pm->name }}</p> 
     </div> 
    </div> 
<hr> 
@endforeach 
+0

당신에게 Ravisha 감사 ($의 PID)

public function all() { $projects = Project::all(); foreach($projects as $project) { $pid = $project->id; $am = DB::table('projects') ->join('employees', 'projects.am_id', '=', 'employees.id') ->where('projects.id', '=', $pid) ->select('projects.id', 'projects.am_id', 'employees.name') ->first(); $pm = DB::table('projects') ->join('employees', 'projects.pm_id', '=', 'employees.id') ->where('projects.id', '=', $pid) ->select('projects.id', 'projects.pm_id', 'employees.name') ->first(); $project->am = $am; $project->pm = $pm; } return view('projects/all', [ 'projects' => $projects ]); } 

보기 마지막 프로젝트는 $ 오전 $ 오후 값을 얻는다! 나에 의한 어리석은 실수. – robk27