我当前正在转储对返回JSON数据的API的调用:
<?php dd($info)?>
哪个转储
{#39751 ▼
+"categories": array:19 [▼
0 => {#1065 ▼
+"category_name": "Block"
+"category_description": "Description details"
+"products": array:24 [▼
0 => {#1070 ▼
+"price": {
"01":"100.00"
}
+"product_info": {
"product_code": 123,
"product_type":{
"quantity": 2
}
}
}
1 => {#1070 ▼
+"price": {
"01":"200.00"
}
+"product_info": {
"product_code": 112,
"product_type":{
"quantity": 3
}
}
}
1 => {#1065 ▼
+"category_name": "Flat"
+"category_description": "Description details"
+"products": array:24 [▼
0 => {#1070 ▼
+"price": {
"01":"100.00"
}
+"product_info": {
"product_code": 221,
"product_type":{
"quantity": 2
}
}
}
1 => {#1070 ▼
+"price": {
"01":"200.00"
}
+"product_info": {
"product_code": 223,
"product_type":{
"quantity": 3
}
}
}
但是当我这样做时:
dd(json_decode($ info))
它只是返回null,我似乎无法访问它。
有明显的理由可以抛弃它而不在刀片中对其进行解码吗?
更新:
最初尝试通过循环/访问进行测试:
foreach($info as $info->categories) {
$category_name = $info->categories['category_name'];
dd($category_name);
}
答案 0 :(得分:1)
foreach($info as $info->categories) {
$category_name = $info->categories['category_name'];
dd($category_name);
}
代替
foreach($info->categories as $category) {
$category_name = $category['category_name'];
dd($category_name);
}
Laravel是一个框架,可帮助您解决Web应用程序的常见请求/响应生命周期。这样做,它通常会处理对象的序列化和反序列化,以及尽可能处理请求有效负载本身。因此,如果接收到JSON编码的有效负载,它将把它转换成一个数组,或者如果您愿意的话,它甚至可以从该数组创建对象,例如您从任何API发布json编码的数据,并希望将其转换为Category实体。最佳做法是顺便说一句。使用DTO,该DTO在用于层之间通信的数据和实际持久的业务对象之间构建一个层。
要传递对象,例如您可以对模型/实体进行分类,只需将其按原样分配给视图即可。
请注意,该刀片服务器是在服务器上处理的,它在PHP内运行,因此根本不需要解码/编码。如果您确实想在前端中显示JSON表示,只有一种情况。
请注意,dd会发生转储并死掉,因此应用程序不会继续。