问题描述
当我尝试从 API 填充响应时,我在 Laravel 中遇到错误。 错误异常 尝试访问 bool 类型值的数组偏移量(视图:C:\laragon\www\testapi\resources\views\order.blade.PHP)
示例 API 响应。
{
"success": true,"desc": "success","details": [{
"awb_no": "","orderid": "BIG000013","status": "Error","reason": "S10","data": null
}]
}
这是来自控制器的代码。
$response = curl_exec($curl);
curl_close($curl);
$response_obj = json_decode($response,TRUE);
//return $response_obj;
return view('order',['data' => $response_obj]);
这是“订单”视图中的代码
@foreach($data as $item)
{{ $item['desc'] }}
@endforeach
当我在谷歌上搜索错误时,大部分答案都指向使用较低的 PHP 版本并进行 Composer 更新。这两个我都做过。仍然得到同样的错误。代码有什么问题吗?从 youtube 的示例教程中获取代码。
解决方法
$data
不是数组,它是单个对象,您在导致错误的对象上使用 foreach
。
您可以直接访问 desc
值:
{{ $data['desc'] }} // success
另外,details
是一个数组,其值可以通过以下方式访问:
@foreach ($data['details'] as $item)
{{ $item['orderid'] }} // BIG000013
{{ $item['status'] }} // Error
@endforeach