2016-09-30 36 views
0

我想弄清楚如何做某件事。我做了一個API調用來檢索一個負載的項目。將用戶鏈接到沒有直接關係的項目

$projects = APIHelper::returnRequestedProjects(); 

被調用的API在另一個服務器上,返回的是一個數組。在我自己的Laravel項目中,我有一個擁有自己用戶的數據庫。我不會對這些用戶的項目建模。但是,上面返回的每個產品都有一個user_id,它與我係統中的用戶ID相匹配。

我需要做的是獲取每個項目的用戶模型。如果我處理的是一個單一的項目,我可以做這樣的事情在我的控制器

$user = User::where('id', $project->user_id); 

由於API調用返回的項目的數組,我直接通過這我的看法。然後,我會做這樣的事情

@foreach($projects as $project) 

@endforeach 

我會怎麼去,雖然項目user_id匹配到我的系統內的用戶?

感謝

回答

1

如果我理解正確的話,你都可以從遠程服務器與數據的數組,你需要得到用戶的數據響應。

$projects = APIHelper::returnRequestedProjects(); 

因此,你的控制器的方法中,

$ids = []; 
foreach ($projects as $project) { 
    $ids[] = $project['user_id']; // Assuming the user_id is the id field 
} 

$returnArray = []; 
foreach ($ids as $id) { 
    $returnArray[] = User::where('id', $id)->first(); 
} 

傳遞返回數組到您的看法:

return view('example.view', ['returnArray' => $returnArray]); 

然後在視圖內......

@foreach($returnArray as $value) 
    {{$value->id}} 
@endforeach 

編輯:回答這個問題在評論中...

$returnArray[$project['id']] = User::where('id', $id)->first(); 

在您的意見中,returnArray鍵現在是您檢索的項目的實際ID。

@foreach($returnArray as $projectId => $user) 
    Project ID: {{$projectId}}, User ID: {{$user->id}} 
@endforeach 
+0

謝謝,那是有益的。我看到的唯一問題是,我現在將$ returnArray傳遞迴具有用戶列表的視圖。但是,我也將項目傳回我的視野。我如何將用戶關聯到正確的項目? –

+0

超級簡單。你可以操縱數組鍵! 我要編輯我的原始答覆,使它看起來很漂亮... – renov8

1

你可以試試這個:

foreach($projects as $project) { 
    $project['user'] = User::where('id', $project['used_id'])->first(); 
}