为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕娘9325324 2023-09-22 15:29:41
我有下面的代码,它获取用户的所有 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似乎不起作用。
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

注意实际上这个谜题是由 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;

}


查看完整回答
反对 回复 2023-09-22
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

foreach()不起作用,因为您在第一次迭代中一次性返回一个值。这要么是预期的行为,要么您可能希望收集数组中的值并在循环之外返回该值。



查看完整回答
反对 回复 2023-09-22
  • 2 回答
  • 0 关注
  • 61 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信