猿问

使用 foreach 进行 api 调用以循环数组

我有下面的代码,它获取用户的所有 cardId,我需要进行 api 调用来获取每张卡的详细信息。创建卡时会保存 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似乎不起作用。


慕娘9325324
浏览 108回答 2
2回答

jeck猫

注意实际上这个谜题是由 baikho 解决的,你应该接受他的回答,因为他是第一个,遗憾的是没有提供任何样本。您不应该在第一次迭代中返回值,而是首先将它们收集在数组中并返回整个集合,而且变量的名称也很混乱。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;}

泛舟湖上清波郎朗

它foreach()不起作用,因为您在第一次迭代中一次性返回一个值。这要么是预期的行为,要么您可能希望收集数组中的值并在循环之外返回该值。
随时随地看视频慕课网APP
我要回答