【问题标题】:Symfony Normalizer and ArrayCollectionsSymfony Normalizer 和 ArrayCollections
【发布时间】:2018-01-19 02:49:00
【问题描述】:

我将 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 指针。指向根对象的指针和循环中的当前指针(当前节点),这样我就可以从父对象和当前子对象中提取数据。

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

  1. \Doctrine\Common\Collections\ArrayCollection
  2. \Symfony\Component\DomCrawler\Crawler
  3. \DOMElement

当然,我只想要我通过的对象。这是某种冒泡吗?

谢谢。

【问题讨论】:

  • @Gabriel Diez ArrayCollections 是 Doctrine Library 的一部分

标签: php symfony oop doctrine-orm


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 2019-01-17
    • 1970-01-01
    • 2019-04-16
    • 2013-03-20
    • 2019-05-29
    相关资源
    最近更新 更多