使用 foreach 进行 api 调用以循环遍历数组
Make an api call using foreach to loop over an array
我在下面有这段代码可以获取用户的所有 cardId,我需要调用 api 来获取创建卡片时保存的每个 card.The cardId 的详细信息。
拿卡的终点是这样——
https://{baseUrl}/v3/virtual-cards/id
我需要将用户的 cardId 作为 id
传递。
在我的应用程序中,我使用户可以创建多张卡片,因此在创建卡片时我会收集 cardId 并将其保存到我的数据库中。我可以使用
从数据库中获取所有 cardId
$auth_user = Auth::user()->id;
$card = Card::where('user_id', $auth_user)->pluck('card_id');
现在我想遍历数据库中的所有 cardId,使 api 调用获取每个 cardId 的所有数据。我试过的。
public function getCard(Request $request){
$auth_user = Auth::user()->id;
$card = Card::where('user_id', $auth_user)->pluck('card_id');
foreach ($card as $userCard) {
$response = Http::withToken('{SEC_KEY}')->get('https://{baseUrl}/v3/virtual-cards/$userCard', [
]);
return $response->json();
}
}
但是 foreach 似乎不起作用。
foreach()
不起作用,因为您 one-off return 在第一次迭代中输入了一个值。这是预期的行为,或者您可能希望收集数组中的值和 return 循环外的值。
注意其实这个谜团已经被baikho解开了,你应该接受他第一次的回答,可惜没有给出任何样本。
您不应该在第一次迭代中 return 值,而是收集它们,即首先在数组中和 return 整个集合,变量名称也很混乱。
public function getCardResponses(Request $request): array
{
$auth_user = Auth::user()->id;
$cards = Card::where('user_id', $auth_user)->pluck('card_id');
$responses = [];
foreach ($cards as $card) {
$response = Http::withToken('{SEC_KEY}')->get('https://{baseUrl}/v3/virtual-cards/$userCard', [
]);
$responses[] = $response->json();
}
return $responses;
}
我在下面有这段代码可以获取用户的所有 cardId,我需要调用 api 来获取创建卡片时保存的每个 card.The cardId 的详细信息。
拿卡的终点是这样——
https://{baseUrl}/v3/virtual-cards/id
我需要将用户的 cardId 作为 id
传递。
在我的应用程序中,我使用户可以创建多张卡片,因此在创建卡片时我会收集 cardId 并将其保存到我的数据库中。我可以使用
$auth_user = Auth::user()->id;
$card = Card::where('user_id', $auth_user)->pluck('card_id');
现在我想遍历数据库中的所有 cardId,使 api 调用获取每个 cardId 的所有数据。我试过的。
public function getCard(Request $request){
$auth_user = Auth::user()->id;
$card = Card::where('user_id', $auth_user)->pluck('card_id');
foreach ($card as $userCard) {
$response = Http::withToken('{SEC_KEY}')->get('https://{baseUrl}/v3/virtual-cards/$userCard', [
]);
return $response->json();
}
}
但是 foreach 似乎不起作用。
foreach()
不起作用,因为您 one-off return 在第一次迭代中输入了一个值。这是预期的行为,或者您可能希望收集数组中的值和 return 循环外的值。
注意其实这个谜团已经被baikho解开了,你应该接受他第一次的回答,可惜没有给出任何样本。
您不应该在第一次迭代中 return 值,而是收集它们,即首先在数组中和 return 整个集合,变量名称也很混乱。
public function getCardResponses(Request $request): array
{
$auth_user = Auth::user()->id;
$cards = Card::where('user_id', $auth_user)->pluck('card_id');
$responses = [];
foreach ($cards as $card) {
$response = Http::withToken('{SEC_KEY}')->get('https://{baseUrl}/v3/virtual-cards/$userCard', [
]);
$responses[] = $response->json();
}
return $responses;
}