如何在Laravel中调用Rest Countries API v3.1获取货币信息?
解决Laravel调用Rest Countries API获取货币名称的问题
Rest Countries API返回的currencies字段是一个键值对对象,键是货币代码(比如SGD),对应的值里包含name(货币正式名称)和symbol(货币符号)字段。你可以通过遍历这个对象来提取货币名称,以下是几种实用的实现方式:
方式1:显示所有货币的名称和代码(适配多货币国家)
直接遍历currencies对象,同时获取货币代码和名称:
@foreach ($responseBody as $response) <div class="row"> <div class="col-4">Official Name</div> <div class="col-8">{{ $response->name->official }}</div> </div> <div class="row"> <div class="col-4">Currencies</div> <div class="col-8"> @foreach($response->currencies as $code => $currency) {{ $currency->name }} ({{ $code }})@if(!$loop->last), @endif @endforeach </div> </div> @endforeach
方式2:只取第一个货币名称(适合默认显示主货币)
如果只需要展示国家的主要货币,用collect()转换后取第一个元素的name:
@foreach ($responseBody as $response) <div class="row"> <div class="col-4">Official Name</div> <div class="col-8">{{ $response->name->official }}</div> </div> <div class="row"> <div class="col-4">Currencies</div> <div class="col-8"> {{ collect($response->currencies)->first()->name }} </div> </div> @endforeach
方式3:兼容无货币数据的情况(避免报错)
加上判断逻辑,防止部分国家无货币数据导致页面报错:
@foreach ($responseBody as $response) <div class="row"> <div class="col-4">Official Name</div> <div class="col-8">{{ $response->name->official }}</div> </div> <div class="row"> <div class="col-4">Currencies</div> <div class="col-8"> @if(isset($response->currencies) && !empty($response->currencies)) @foreach($response->currencies as $code => $currency) {{ $currency->name }} ({{ $code }})@if(!$loop->last), @endif @endforeach @else No currency data available @endif </div> </div> @endforeach
内容的提问来源于stack exchange,提问作者Pamungkas
相关产品推荐
相关产品推荐

