在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 5.2