【发布时间】:2019-06-02 08:47:43
【问题描述】:
这是我的对象products:
array:1 [▼
0 => Products {#8662 ▼
-id: 5
-name: "lion"
-unique_id: "7726d59574"
-productgroup: PersistentCollection {#8763 ▼
-snapshot: array:2 [ …2]
-owner: Products {#8662}
-association: array:20 [ …20]
-em: EntityManager {#4326 …11}
-backRefFieldName: null
-typeClass: ClassMetadata {#8294 …}
-isDirty: false
#collection: ArrayCollection {#8666 ▼
-elements: array:2 [▼
0 => Productgroup {#8765 ▼
-id: 5
-name: "Mammals"
-unique_id: "12102400f9"
}
1 => Productgroup {#8769 ▼
-id: 7
-name: "Fish"
-unique_id: "f0fbfa5c19"
}
]
}
#initialized: true
}
}
]
当我创建这样的 json 文件时...
$result = $serializer->serialize($products, 'json');
...我得到这个结果:
[{"id":5,"uniqueId":"7726d59574","name":"lion","productgroup":[{"id":5,"uniqueId":"12102400f9","name":"Mammals"},{"id":7,"uniqueId":"f0fbfa5c19","name":"Fish"}]}]
但我需要的结果只是产品组。所以这就是我试图实现的目标:
[{"id":5,"uniqueId":"12102400f9","name":"Mammals"},{"id":7,"uniqueId":"f0fbfa5c19","name":"Fish"}]
这是我的第一个方法:
$data = $products->productgroup;
$result = $serializer->serialize($data, 'json');
但我收到了错误消息:
注意:试图获取非对象的属性“productgroup”
我想,哦,好吧,这意味着,products 不是一个对象,所以我尝试了这个:
foreach ($products as $product) {
$data = $product['productgroup'];
}
$result = $serializer->serialize($data, 'json');
但现在我得到了错误:
不能将 App\Entity\Products 类型的对象用作数组
【问题讨论】:
标签: php arrays json symfony object