Это мой объект 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 в качестве массива