在Laravel Blade视图中访问API返回数组报Undefined index错误如何解决
问题解决方案
错误原因
你当前遍历得到的$dt是外层二级数组,仅包含payload、count、total三个键,mDeviceID实际存储在$dt['payload']下的每一条设备记录中,因此直接访问$dt['mDeviceID']会报索引不存在错误。
正确实现代码
场景1:遍历所有payload下的设备记录(需要访问payload内其他字段时用)
<div class="row"> <div class="col-md-12"> <table class=""> <!-- 第一层遍历外层设备分组 --> @foreach($deviceStatus as $deviceGroup) <!-- 第二层遍历分组下的payload设备列表 --> @foreach($deviceGroup['payload'] as $device) <tr> <th>DEVICE NUMBER</th> <td>{{ $device['mDeviceID'] ?? '未获取到设备ID' }}</td> </tr> @endforeach @endforeach </table> </div> </div>
代码中?? '未获取到设备ID'是为了兼容异常缺失字段的情况,避免再次报错,你如果确定所有数据都有该字段可以省略。
场景2:仅展示设备号(不需要访问payload内其他字段时用)
观察到你的API返回中外层数组的键与mDeviceID值完全一致,你也可以直接取外层遍历的键,少一层遍历性能更好:
<div class="row"> <div class="col-md-12"> <table class=""> @foreach($deviceStatus as $deviceId => $deviceGroup) <tr> <th>DEVICE NUMBER</th> <td>{{ $deviceId }}</td> </tr> @endforeach </table> </div> </div>
内容的提问来源于stack exchange,提问作者Melx
相关产品推荐
相关产品推荐

