Symfony Normalizer和ArrayCollections

时间:2017-08-14 11:32:11

标签: php symfony oop doctrine-orm

我将ArrayCollection传递给自定义Symfony Normalizer:

$container = new ArrayCollection();
$container->set('root', $processor->getFile());

$container->get('root')->each(function($node) {
    $container->set('node', $node);
    $data = $this->serializer->normalize($container);
});

该集合包含两个Symfony Crawler指针。指向循环(当前节点)中的根对象和当前指针的指针,这样我就可以从父项和当前子项中提取数据。

现在,当我在我的(接口)var_dump()函数中supportsNormalization()时,我得到3个独立的对象:

  1. \学说\共同\类别\ ArrayCollection的
  2. \的Symfony \元器件\ DomCrawler \履带
  3. \一个DOMElement
  4. 当然,我只想要通过的对象。这有点冒泡吗?

    感谢。

1 个答案:

答案 0 :(得分:-1)

我实际上得到了所有嵌套对象。

这是Symfony的Normalizer的一个功能......当将对象传递给normalize()函数时,Symfony会递归调用所有嵌套对象上的normalize(),直到supportsNormalization()找到匹配项。

https://github.com/symfony/serializer/blob/master/Normalizer/AbstractObjectNormalizer.php