【发布时间】:2019-05-08 13:01:57
【问题描述】:
我有以下 XML:
<CinemaListExport>
<Cinema>
....
<screens>
<screen></screen>
<screen></screen>
</screens>
</Cinema>
<Cinema>
....
</Cinema>
<CinemaListExport>
我正在尝试将其转换为以下对象:
class CinemaList
{
/**
* @var Cinema[]
*/
public $cinema;
public function __construct()
{
$this->cinema = new ArrayCollection();
}
public function addCinema(Cinema $cinema)
{
$this->cinema[] = $cinema;
}
class Cinema
{
fields...
/**
* @var Screen[]
*/
public $screens = [];
使用以下代码:
$normalizers = [
new ArrayDenormalizer(),
new ObjectNormalizer(null, null, null, new ReflectionExtractor())
];
$encoders = [new XmlEncoder()];
$serializer = new Serializer($normalizers, $encoders);
$res = $serializer->deserialize($xml, CinemaList::class, 'xml');
无论我做什么,我总是得到以下结果:
class CinemaList#265 (1) {
public $cinema =>
class Doctrine\Common\Collections\ArrayCollection#317 (1) {
private $elements =>
array(0) {
}
}
}
谁能指出我正确的方向?我在这里做错了什么? 我只需要 CinemaList 来包含所有的电影院,而每个 Cinema 来包含它的所有屏幕
【问题讨论】:
标签: php serialization symfony4