php - Laravel - 尝试获取非对象的属性 - PHP

标签 php laravel-5 eloquent

我目前正在尝试学习 Laravel 和 PHP。

我需要能够导入 Excel 文件,然后从该文件中获取数据。目前,导入部分可以正常工作,我可以看到文件中的数据。但是,我在访问数据时遇到问题。

我已经阅读了 Laravel 中的 toArray() 函数,并且正在使用它,如下所示:

 $data = Excel::load($path, function($reader) {})->skipColumns(2)->get();
 $data = $data->toArray();

         foreach ($data as $key => $value) {

           //We only need some of the available data.
           echo $value->next_milestone_desc_cur._comp._incl_rltd;
           echo $value->shipment_id;

          }

上面的代码给了我以下错误:

Trying to get property 'next_milestone_desc_cur' of non-object

下面是我使用 dd($value) 生成的数组的输出:

array:543 [▼
  0 => array:20 [▼
    "next_milestone_desc_cur._comp._incl_rltd" => "005. DK - Add DropMode/Local Trp Org in Pickup Tab"
    "milestone_cur._comp._sequence_no" => "005"
    "cur._comp._export_validation" => "NOT OK"
    "shipment_id" => "SBRY0162091"
    "consol_id" => "CDK327188"  ]
  1 => array:20 [▼
    "next_milestone_desc_cur._comp._incl_rltd" => "005. DK - Add DropMode/Local Trp Org in Pickup Tab"
    "milestone_cur._comp._sequence_no" => "005"
    "cur._comp._export_validation" => "NOT OK"
    "shipment_id" => "SBRY0162124"
    "consol_id" => "CDK327221"
  ]

我在这里做错了什么?我也尝试过 echo $value[0]->next_milestone_desc_cur._comp._incl_rltd;,但这也不起作用。

最佳答案

您正在尝试将数组作为对象访问,因此会出现错误并解决第二点,您需要使用嵌套循环来访问子数组。

你的数组看起来像这样:

$array = [
  0 => [
    0 => [
      'test' => 'value'
    ],

    1 => [
      'test' => 'something'
    ]  
  ],

  1 => [
    0 => [
      'test' => 'value'
    ],

    1 => [
      'test' => 'something'
    ]  
  ]  
];

您需要以下循环:

foreach ($array as $key => $nested) {
  foreach ($nested as $nested_value) {
    // You have access to your inner arrays.
    echo  $nested_value['test'] . ' | ';
  }
}

嵌套循环$nested将是$value

实例

Repl

关于php - Laravel - 尝试获取非对象的属性 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51285097/

相关文章:

javascript - 如何将同一对象的多个图像绘制到单个 Canvas 上

php - Laravel 仅附加关系中的一个属性

PHP 在 <a> 标签内发布一个变量

javascript - DROPZONE - 在文件上传期间处理 AJAX 请求中的 session 超时

php - 维护网站的事件 FB 身份验证 session

laravel - 覆盖 Laravel 5.8 中的默认 Auth 路由

laravel - Elixir 版本控制公共(public)路径

php - laravel 5.1 中的安全和干净代码

php - laravel Eloquent 地创建数据库条目但具有空值

php - MySQL COUNT() + 半秒 COUNT