将关联数组变成类似于 Eloquent 查询集合的集合

2024-01-19

我有一个正在接收 API 数据的类,我想将所有响应包装到一个集合类中。因此,我从 API 调用接收数据,将其转换为普通的关联 php 数组,并使用collect() helper.

我本以为它能像 Eloquent 一样工作,你可以将键引用为集合属性,但事实并非如此。

以下是我将收到的响应数据的示例:

$data = [
    'status' => 'SUCCESS',
    'message' => 'Your request was received.',
    'data' => [
        'first_name' => 'John',
        'last_name' => 'Doe',
        'address' => [
            'street' => '123 Main St.',
            'city' => 'Any City',
            'state' => 'TX',
            'zip' => '12345',
            'country' => 'USA'
        ],
        'email' => '[email protected] /cdn-cgi/l/email-protection',
        'phone' => '(123) 456-7890',
        'role' => 'Administrator',
        'active_orders' => 3
    ]
];

$response = collect($data);

我希望能够将这些数据包装在一个集合中并像这样使用它:

$response->data->address->street or $response->data->first_name

但是,我收到一条错误消息Property [data] does not exist on this collection instance.如果我想访问它,我必须像数组一样引用它。例如。$response['data']['first_name']。如果我想使用该语法,我只需将其保留为数组即可。

如何递归地将集合属性设置为数组键名称,以便我可以像 Eloquent 查询一样使用它?


如何递归地将集合属性设置为数组键名称,以便我可以像 Eloquent 查询一样使用它?

json_decode()通常解构为这样的对象。但你需要从 JSON 开始。所以,这看起来很愚蠢,而且可能效率不是很高,但这应该可以满足您的要求:

$response = json_decode(json_encode($data));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将关联数组变成类似于 Eloquent 查询集合的集合 的相关文章

随机推荐

  • 无法在页面右侧找到“滑出”选项卡

    我有一个滑出选项卡 它在左侧完美工作 但是当我更改设置以将其放置在右侧时 选项卡图像消失并且内容卡在打开状态 在选项卡滑出 DIV 下我有这个 js slide out div tabSlideOut tabHandle handle cl
  • Jade 模板每个循环都包含 jade 文件

    在jade模板引擎中 我可以执行每个循环来包含文件吗 例如 each val in file1 file2 file3 include val 您正在尝试通过循环动态包含文件 不支持动态包含 来自 Github 上的 Jade 问题部分 h
  • 获取的绝对路径

    使用Javascript 有没有一个标准的方法来获取绝对路径图像的 img getAttribute src 只返回src属性与 HTML 中声明的一样 Just do src img 0 src images foo gif images
  • iOS:加载 MKMapView 并添加注释/叠加时的通知?

    我知道用于让我知道地图何时加载以及注释和叠加层何时添加的委托方法 mapViewDidFinishLoadingMap mapView didAddAnnotationViews mapView didAddOverlayViews 我想创
  • 分别获取国家、城市及其地区/州/城镇的列表[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 是否可以在微调器中加载所有国家 地区的列表 然后在选择特定国家 地区时 其所有城市都会出现在另一个微调器中 选择城市后 我们可以使用谷
  • 将Python中的For循环转换为While循环

    我正在尝试转换这两个for循环到while loops sum 0 for i in range 10 30 for j in range i 10 i sum j 有任何想法吗 What for i in range a b 它的作用是运
  • 将超类的对象转换为子类 - 向下转型

    我知道强制转换实际上只能从子类到超类 向上强制转换 完成 但这个示例说明了我想做的事情 Class Super Class Sub extends Super Super super new Super Sub sub Sub super
  • CSS div高度不会扩展

    我有一个侧边栏 DIV 我想垂直扩展它以匹配其包含的 div 我这样做是为了实现这个目标 html body wrapper content sidebar height 100 但包装器 内容和侧边栏永远不会扩展到超过 1000 像素 即
  • 当 RxJs 主题没有观察者时调用方法

    当所有观察者都取消订阅主题时如何调用方法 Update const alphaStore new BehaviourSubject 0 observer1 alphaStore subscribe console log observer2
  • 如何使用 iPhone 中的当前日期(今天)获取本周、本月、今年的所有日期/日期

    在我的应用程序中 我必须在表格视图中按日期显示工作时间列表 这里我有5个场景 今日项目 工作时间 选定日期项目 时间 本周 周日至周六 当月 工作时间为一月 如果是二月则为二月 如果是三月则为三月 当年 2013年所有工作时间 我已经实现了
  • 进行 RPC 调用时出现序列化异常

    我创建了一个非常基本的应用程序 我只有一个服务类和一个相应的异步类 该类仅包含 Java 类型 没有自定义类 但我仍然遇到序列化异常 我的服务类看起来像这样 public interface MyService extends Remote
  • u-boot 可以支持多个以太网端口吗?

    我想从多个以太网端口执行 ping 操作 u boot 仅支持单个以太网端口是否存在固有限制 u boot 可以支持多个以太网端口吗 是的 在最近版本的 U Boot 中 至少可以追溯到 2012 10 突出的代码是eth current
  • GLSL、Opengl 中的视差贴图问题

    我的视差贴图给出了错误的结果 我不知道出了什么问题 影子 放错了地方 光线从观察者处射向立方体 Shader程序 基于dhpoware com vert varying vec3 lightDir varying vec3 viewDir
  • 从图库(SD 卡)中选择图像用于我的应用程序时发生异常... java.lang.OutOfMemoryError:位图大小超出 VM 预算

    我正在使用 Android 在我的应用程序上选择图像 我不知道为什么 有时我会遇到例外 我认为我总是选择超过 400 或 500 kb 的图像 但我不确定 为什么 因为当我选择 100 kb 的小图像时 我没有遇到异常 而当我获取高 KB
  • 为什么 Bootstrap 尝试在 Edge 中加载 LESS 文件?

    我有一个使用 Twitter Bootstrap 的网页 它在 Chrome Firefox 和 Safari 中运行良好 然而 当我尝试在 Windows 10 上的 Edge 中查看它时 收到一堆 403 错误 指出它无法从 Boots
  • 有什么方法可以将 HTML 添加到 Xamarin.Forms 页面中吗?

    我希望能够将一些 HTML 添加到 Xamarin Forms 页面中 这可能吗 是否可以将其添加为标签的一部分 如果您想要完整的 html 支持 那么 Xamarin formsWebView将会是一个不错的选择 但如果你想要一些基本的格
  • Angular 2,设置默认值以选择选项

    我尝试为选项添加默认值 它就像一种占位符 我使用这个方法 https stackoverflow com questions 5805059 how do i make a placeholder for a select box去做吧 在
  • 混合 C++ ABI 以针对遗留库进行构建

    情况是这样的 我有一个使用最新 GCC 4 3 3 的 C 代码库 但我需要链接到使用 GCC 3 2 3 构建的旧库 该库没有可用的新版本 我不能没有它 而且它是闭源的 因此无法重建 这似乎造成了一个问题 因为 GCC 4 3 3 和 3
  • 用 PHP 编译带有多个附件的电子邮件

    我需要从 PHP 发送一封包含多个图像附件的电子邮件 我目前有一个使用两个硬编码图像的测试设置 我用所有必要的标题编译电子邮件并将其发送出去 但是 当我收到它时 它只显示第一张图片作为附件 第二张图片似乎被忽略了 使用 Groupwise
  • 将关联数组变成类似于 Eloquent 查询集合的集合

    我有一个正在接收 API 数据的类 我想将所有响应包装到一个集合类中 因此 我从 API 调用接收数据 将其转换为普通的关联 php 数组 并使用collect helper 我本以为它能像 Eloquent 一样工作 你可以将键引用为集合