我想知道如何做某事。我进行API调用以检索大量项目。
$projects = APIHelper::returnRequestedProjects();
被调用的API在另一台服务器上,返回的是一个数组。在我自己的Laravel项目中,我有一个拥有自己用户的数据库。我没有针对这些用户建模项目。但是,上面返回的每个产品都有一个user_id,它与我系统中用户的id匹配。
我需要做的是获取每个项目的用户模型。如果我正在处理一个项目,我可以在我的控制器中执行类似的操作
$user = User::where('id', $project->user_id);
当API调用返回一个项目数组时,我将它直接传递给我的视图。然后我会做这样的事情
@foreach($projects as $project)
@endforeach
我如何将项目user_id与系统中的用户匹配?
由于
答案 0 :(得分: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
答案 1 :(得分:1)
你可以尝试这个:
foreach($projects as $project) {
$project['user'] = User::where('id', $project['used_id'])->first();
}