首页 > 解决方案 > 使用 PHP 函数 end() 时间接修改 Illuminate\Support\Collection 的重载元素无效

问题描述

在我的 Laravel 应用程序中,我正在使用 API 提供的数组。$client_details出于所有密集目的调用此数组。

该数组包含更多嵌套数组,在这种情况下,我正在查看计划。要访问客户的第一个计划,我可以使用非常简单的方法,例如:

{{ $client_data['Plans'][0]['AccessNumber'] }}{{ $client_data['Plans'][0]['PlanTypeId'] }}

本质上,进入Plansinside$client_details然后进入第一个索引并查找 key AccessNumber

一些用户有多个Plans,因此最新条目的索引可能是 1、2 或 3,而不是 0。

为了解决这个问题,我尝试了以下方法:

{{ end($client_data['Plans'])['AccessNumber'] }}{{ end($client_data['Plans'])['PlanTypeId'] }}

这使用 PHP 函数end()

但是对于只有一个计划的用户,使用end()会抛出标题中提到的错误。

更新

我停止转换$client_details为集合,然后它没有问题,鉴于此,集合与数组有根本不同吗?

标签: phplaravel

解决方案


在处理集合时,Laravel 提供了许多可以在集合上使用的方法。在您的情况下,您正在寻找 last() 方法。见这里。如果您正在使用数组,则可以使用 array_last() 辅助方法。见这里


推荐阅读