在laravel的表中使用对象数组

Posted

技术标签:

【中文标题】在laravel的表中使用对象数组【英文标题】:using array of objects in table in laravel 【发布时间】:2020-12-12 08:37:48 【问题描述】:

嗯,我是 laravel 的新手,我不知道我做对了还是什么。 所以这是我的问题:我有一个控制器,它获取 id 并给出一个包含数组的对象。 我只需要那个数组中的对象,我可以像这样得到它们:

$services = Service::findOrFail($id);
    $service = $services->order['orders'];

但是当我发送 $service 来查看时,我不知道如何使用 foreach 将它们设置在表中。

这是我的控制器:

    public function watch($id)
        $services = Service::findOrFail($id);
        $service = $services->order['orders'];

       return view('service.watch',['service'=> $service]);

当我从一个集合中获取所有文档并将它们发送到视图时通常很容易,它们的结构都相同,但它不像这样工作。

这是我 var_dump $service 的时候:

 array(2) 
  [0]=>
  array(9) 
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#1221 (1) 
      ["oid"]=>
      string(24) "5f42734c00c6ed74e48624e5"
    
    ["stat"]=>
    string(5) "false"
    ["customerPhone"]=>
    string(1) "5"
    ["orderQuantity"]=>
    string(1) "5"
    ["orderCost"]=>
    string(1) "5"
    ["orderId"]=>
    float(139907061720)
    ["orderTag"]=>
    string(1) "2"
    
  [1]=>
  array(9) 
    ["_id"]=>
    object(MongoDB\BSON\ObjectId)#1222 (1) 
      ["oid"]=>
      string(24) "5f42734c00c6ed74e48624e6"
    
    ["stat"]=>
    string(5) "false"
    ["customerPhone"]=>
    string(1) "9"
    ["orderQuantity"]=>
    string(1) "9"
    ["orderCost"]=>
    string(1) "9"
    ["orderId"]=>
    float(139907061725)
    ["orderTag"]=>
    string(1) "9"
             
   

在我看来,我这样做了:

@foreach($service as $key=>$value)
   <td> $value->customerPhone </td>
   <td> $value->orderQuantity </td>
   <td> $value->orderCost</td>
   <td> $value->orderTag</td>
   @endforeach

请帮我编写代码。谢谢你

【问题讨论】:

使用数组索引,如$value['customerPhone'] @zahidhasanemon 感谢它的工作。但是你能解释一下为什么 $value->customerPhone 不起作用吗? 【参考方案1】:

正如您在 var_dump 结果中看到的,您的结果数据类型是数组,而不是对象。 所以你必须通过索引 $value['customerPhone']

访问

【讨论】:

是的,谢谢你成功了,但我有一个问题。当我们从集合中获取所有文档时,它是相同的。不是吗?

以上是关于在laravel的表中使用对象数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel 中将连接结果作为对象数组获取?

获取数组中对象的编号,但不获取对象本身。 - Laravel 5.2

Laravel:如何查询包含json数据的表中的列并仅返回查询匹配的对象

Laravel:从相关表中获取数据(json数组列)

如何使用 vform 将对象数组传递给 laravel

laravel怎么把对象转换为数组