在 Laravel 中将对象转换为数组[重复]

2023-12-04

我查询了这样的数据库,它给了我一个数组:

foreach($oid as $orderid) {
    $orderdetailData[] = DB::table('order_details')
        ->join('orders', 'order_details.oid', '=', 'orders.oid')
        ->select('order_details.oid', 'orders.ostatus')
        ->where('order_details.oid', $orderid)->get();
    }

    $data = array_flatten($orderdetailData);
    return $data;

这是我得到的数组

array (size=2)
  0 => 
    object(stdClass)[174]
      public 'oid' => int 1
      public 'ostatus' => string 'Placed' (length=6)
  1 => 
    object(stdClass)[158]
      public 'oid' => int 2
      public 'ostatus' => string 'Placed' (length=6)

我试图以这种形式获取这个数组

array (size=2)
  0 => 
    array (size=2)
      public 'oid' => int 1
      public 'ostatus' => string 'Placed' (length=6)
  1 => 
    array (size=2)
      public 'oid' => int 2
      public 'ostatus' => string 'Placed' (length=6)

我尝试这样做:

foreach($orderdetailData as $key => $value){
    $data[] = array_flatten($orderdetailData[$key]);
}

但是这样做会得到一个这种形式的数组:

array (size=2)
  0 => 
    array (size=1)
      0 => 
        object(stdClass)[174]
          public 'oid' => int 1
          public 'ostatus' => string 'Placed' (length=6)
  1 => 
    array (size=1)
      0 => 
        object(stdClass)[158]
          public 'oid' => int 2
          public 'ostatus' => string 'Placed' (length=6)

这不是我正在寻找的。有人可以告诉我有什么简单的方法可以做到这一点吗?谢谢


Using array_map并转换为数组应该足够了:

$data = array_map(function($object){
    return (array) $object;
}, $data);

我也不会在循环内运行查询。您应该尝试在一次查询中从数据库获取该数据。像这样的事情可以工作:

$data = DB::table('order_details')
    ->join('orders', 'order_details.oid', '=', 'orders.oid')
    ->select('order_details.oid', 'orders.ostatus')
    ->whereIn('order_details.oid', $oid)->get();

Edit

正如另一个答案中提到的那样,让我解释一下如何通过将 PDO 设置为来完成相同的任务FETCH_ASSOC:

DB::setFetchMode(PDO::FETCH_ASSOC);
$data = DB::table('order_details') .... ->get();

但是,这会全局更改请求其余部分的获取模式(至少在您不打开新连接的情况下)。要保存,您应该稍后将其更改回来:

DB::setFetchMode(PDO::FETCH_ASSOC);
$data = DB::table('order_details') .... ->get();
DB::setFetchMode(PDO::FETCH_CLASS);

或者,如果您不确定使用什么默认值,甚至可以先备份它:

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

在 Laravel 中将对象转换为数组[重复] 的相关文章

  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • 在 postgresql 9.4 或 9.5 中查询 json 对象的嵌套数组中的元素

    studentID 1 StudentName jhon Data schoolname school1 enrolmentInfo year 2015 info courseID csc213 school IT enrollmentda
  • 访问 public_html 级别之外/以下的文件

    如何通过 url 访问文件 home uzair etc index php 即使我运行域 something com 它显示了 home uzair public html index php 这个文件 任何人请帮助我如何访问放置在 ho
  • Laravel Sum 列数据库 Eloquent

    尝试获取我的一个表中 int 字段的总和应该非常容易 不幸的是 事实并非如此 因为无论我使用 Laravel MySQL 还是 Excel 我都会得到不同的结果 Laravel 5 4 给了我20506 Table sum field na
  • 使用 HTTP-Basic 身份验证发出 HTTP GET 请求

    我需要为我正在开发的 Flash Player 项目构建一个代理 我只需要使用 HTTP Basic 身份验证向另一个 URL 发出 HTTP GET 请求 并提供来自 PHP 的响应 就好像 PHP 文件是原始源一样 我怎样才能做到这一点
  • Node.js 进行 rsa 加密的正确方法?

    我正在尝试创建一个 WS 来发出肥皂请求 在消息正文中有一个包含加密文本的字段 我有公钥来加密文本 但我获得的唯一结果是文本无法识别 我使用节点的加密模块来发出请求 并且文本已加密 但我不知道为什么没有正确加密 PS我用 openssl p
  • 如何在无法重启的服务器(Apache)上使用gettext?

    我在服务器故障上问了这个问题 https serverfault com questions 104224 how do you use gettext on server apache you cant restart但我没有得到任何回应
  • 访客客户检查 Woocommerce 订单账单电子邮件时可享受首单折扣

    通过对照正在处理和已完成的订单检查来宾客户的电子邮件地址 如果电子邮件没有订单 我想给来宾 首单折扣 如果这能在客人输入电子邮件时发生 那就太好了 我想我已经成功制作了折扣代码 现在我请求帮助合并这两个代码 使其一切正常 这是折扣代码 ad
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • Twig:选择某些块并渲染它们

    我正在将 twig 模板引擎集成到 PHP 应用程序中 特别是 我想使用 twig 引擎来渲染表单 了解了 symfony2 如何使用 twig 渲染表单小部件后 他们有一个巨大的模板文件 其中包含所有小部件 如下所示 block pass
  • 如何 grep 遍历数组,同时过滤掉匹配项?

    有没有一种快速简便的方法来 grep 遍历数组 找到满足某些测试的元素and从原始数组中删除这些 例如我想要 a 1 7 6 3 8 4 b grep filter gt 5 a now b 7 6 8 and a 1 3 4 换句话说 我
  • Laravel 5.3:护照实现 - {“error”:“invalid_client”,“message”:“客户端身份验证失败”}

    我按照中提到的确切步骤进行操作Laracast Laravel 5 3 的新增功能 Laravel Passport https laracasts com series whats new in laravel 5 3 episodes
  • 通过ajax执行后期操作时如何克服CORS重定向问题?

    我可以通过外部登录表单中的 post 方法类型提交表单来登录 roundcube 实例 托管在另一台服务器上 我收到此错误 通过 ajax 签名时 XMLHttpRequest 无法加载https 192 168 0 7 mail http
  • 隐藏产品价格和添加到购物车按钮,但不隐藏 WooCommerce 中未注册用户的变体

    在我的 WooCommerce 商店中 我想隐藏价格 直到客户登录为止 我有以下代码可以实现这一点 add action init hide price function hide price if is user logged in re
  • 检查 Float 是否等于 Ruby 中的整数值

    假设我有以下代码 x 0 8 y 1 0 最好的检查方法是什么y相当于Integer 目前我正在做 y to int y 这可行 但我觉得应该有更好的方法 You mod值为 1 并检查该值是否等于 0 if y 1 0
  • 图像创建从jpeg() PHP

    我正在使用 imagecreatefromjpeg 函数合并两张图片 现在我面临的问题是 当我使用服务器中的图片时 它工作正常 而当我使用其他网站的图片时 它不起作用 例如 当我使用这个 PHP 文件时http coolfbapps in
  • 在 Javascript 中创建数组

    我对 javascript 不太熟悉 并且在用 javascript 制作 2d 或者也许我可能需要 3d 数组时遇到了一些麻烦 我目前需要收集 2 条信息 一个 ID 和一个值 因此我创建了以下内容 var myArray var id
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 没有适用于机器人的 Laravel 会话

    我在大型 Laravel 项目和 Redis 存储方面遇到问题 我们将会话存储在 Redis 中 我们已经有 28GB 的 RAM 然而 它的运行速度仍然相对较快 达到了极限 因为我们有来自搜索引擎机器人的大量点击 每天超过 250 000
  • PHP简单的html dom解析器与wordpress冲突吗?

    PHP简单的html dom解析器与wordpress冲突吗 因为每当我尝试将其与此代码一起包含在我的标头中时 一切都变成空白 感谢您提前提供任何帮助 当我尝试在 HTML 文档中使用 PHP 包含时 我遇到了同样的问题 但当我使用func

随机推荐

  • 使用 CSS 制作脉动环动画

    我想要一个从中心开始的扩展半径div而不是从左上角开始div 想象一下按钮有一个向外的脉动轮廓 那脉动的轮廓应该从中间开始div然后出去 请参阅此处的示例 https jsbin com dinehoqaro edit html css 输
  • IcmpSendEcho2 失败并显示 WSA_QOS_ADMISSION_FAILURE 和 ERROR_NOACCESS

    我有一个应用程序可以 ping 一堆服务器 它运行了好几天 但突然会出现以下两种类型之一的许多故障 WSA QOS ADMISSION FAILURE 11010 由于缺乏资源而发生 QoS 错误 or ERROR NOACCESS 998
  • 在matlab中绘制一个包含许多子图的大图

    我必须打印一张大海报 其中包含数字矩阵 让 MATLAB 排列它们对我来说非常实用 不幸的是 子图是为了适应特定的图形尺寸而显示的 因此很小且扭曲 我不想适应人物尺寸 而是想适应海报的纸张尺寸 我尝试过set gcf Position 并且
  • Delphi 皮肤库

    我想知道最适合您的 Delphi 应用程序皮肤库是什么 我正在寻找 WinXP Windows Vista Windows 7 兼容性 这样应用程序就不会因为皮肤而崩溃或工作异常 我尝试过主题引擎 但它在 Windows Vista 中运行
  • 使用 SSE 的矩阵向量和矩阵矩阵乘法

    我需要编写矩阵 向量和矩阵 矩阵乘法函数 但我无法理解 SSE 命令 矩阵和向量的维数始终是 4 的倍数 我设法编写了向量 向量乘法函数 如下所示 void vector multiplication SSE float m float n
  • 如何获取 Node.js 目录中存在的所有文件的名称列表?

    我正在尝试使用 Node js 获取目录中存在的所有文件的名称列表 我想要的输出是文件名数组 我怎样才能做到这一点 您可以使用fs readdir or fs readdirSync方法 fs包含在 Node js 核心中 因此无需安装任何
  • 类似于 git status 的命令(或脚本)显示自上次 git svn dcommit 以来的所有本地提交?

    这个 python 脚本是迄今为止我想出的最好的脚本 我只是将它组合在一起 在粗略的前几次使用中 似乎表现得正确 但我忍不住觉得有一种更简单的方法可以做到这一点 甚至是内置的东西 尽管我已经搜索了一遍 谢谢您的帮助 usr bin env
  • 如何将值传递到系统调用 XV6

    我正在尝试创建一个系统调用 该系统调用将增加添加到 cpu 结构中的数字 但是我相信系统调用必须是空的 那么我如何在调用它时传递一个值 增量数 3 Xv6 有自己的函数 用于将参数从用户空间传递到内核空间 系统调用 您可以使用 argint
  • 查询仅从字符串中获取数字

    我有这样的数据 string 1 003Preliminary Examination Plan string 2 Coordination005 string 3 Balance1000sheet 我期望的输出是 string 1 003
  • 如何以编程方式实例化和应用指​​令?

    我知道在 ng2 中我们有ComponentFactoryResolver可以解决我们可以应用到的工厂ViewContainerRef 但是 指令有类似的东西吗 一种实例化它们并将它们应用到组件的投影内容的方法 不 不能动态添加或删除指令
  • android SDK 中缺少 platform-tools\aapt.exe 目录

    我正在尝试使用 Eclipse 在 Android SDK 上运行 hello world 我正在一步一步地遵循本教程 http developer android com resources tutorials hello world h
  • 单元测试的详细程度[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想开始讨论您在单元测试中涵盖的细节 您是否测试由多种方法组成的主要功能 通过一次测试同时执行一项任务 或者您甚至可以测试自动属性 因为 例如 我认为编写仅测试以下内容的测试没有什么价值
  • 如何为Android创建收件箱样式(带有未读计数)小部件?

    我正在尝试为我的 Android 应用程序创建一个小部件 我希望它是一个单元格 但右上角有注释 类似于流行的小部件 在右上角显示未读电子邮件 短信计数 这似乎是一个常见的尝试和做的事情 但我找不到任何如何构建它的示例 我该怎么做呢 或者有什
  • php变量作为条件赋值

    我想知道如何将条件赋值给 php 变量并在其他条件中使用它 如下所示 cndtnal x 4 if y 5 cndtnal print Hello World Thanks 您应该尽量避免使用eval尽可能多 但如果你想使用它 那么你可以这
  • reset() - “严格标准:只有变量应该通过引用传递”[重复]

    这个问题在这里已经有答案了 我目前正在为客户迁移一个网站 据我所知 他们的旧主机肯定使用的是旧版本的 PHP 该网站目前正在其当前主机上工作 我正在努力将其移至新主机 但出现以下错误 PHP 严格标准 第 17 行 home parcelt
  • 与flock()函数有关的问题

    我有一个关于如何flock 有效 特别是在 python 中 我有一个打开串行连接的模块 通过os open 我需要确保这个线程的安全 当使用相同的模块工作时 它很容易使其线程安全threading Lock 但是如果模块从不同的地方导入
  • viewForSupplementaryElementOfKind 没有被调用

    我已经声明了如下所示的集合视图 lazy var collectionView UICollectionView let layout UICollectionViewFlowLayout layout itemSize UICollect
  • 循环遍历目录中的子目录

    我有一个目录 文件夹 该目录内有许多子目录 每个子目录内都有许多图像 我想循环遍历 文件夹 目录中的子目录 然后循环遍历每个目录中的所有图像以将图像导出到 Excel 并将每个子目录中的图像放在一个 Excel 工作表中 例如如果我有十个子
  • 从最小化窗口捕获图像

    正如标题所示 我想从最小化的窗口捕获图像 这可能吗 我用捕捉图像来自 MSDN 并且它可以工作 除非窗口被最小化 我尝试的一种解决方案是将其最大化 捕获图像 然后将其恢复到原始状态 唯一的问题是动画看起来很丑 我想找到替代方案 这是我尝试的
  • 在 Laravel 中将对象转换为数组[重复]

    这个问题在这里已经有答案了 我查询了这样的数据库 它给了我一个数组 foreach oid as orderid orderdetailData DB table order details gt join orders order det