Symfony FOSRestBundle';s序列化程序使用继承的实体引发递归错误

Symfony FOSRestBundle';s序列化程序使用继承的实体引发递归错误,symfony,fosrestbundle,jmsserializerbundle,Symfony,Fosrestbundle,Jmsserializerbundle,我正在开发一个继承抽象类的应用程序。这些抽象类有自己的序列化程序映射,如下面的示例所示 Hezten\CoreBundle\Model\Enroled: exclusion_policy: ALL 抽象类: <?php namespace Hezten\CoreBundle\Model; abstract class Enroled implements EnroledInterface { protected $student; protected $su

我正在开发一个继承抽象类的应用程序。这些抽象类有自己的序列化程序映射,如下面的示例所示

Hezten\CoreBundle\Model\Enroled:
    exclusion_policy: ALL
抽象类:

<?php

namespace Hezten\CoreBundle\Model;

abstract class Enroled implements EnroledInterface
{
    protected $student;

    protected $subject;

    //Some functions...

}

终于API开始工作了。。。我必须重写继承的类的元数据,并将以下行添加到config.yml

jms_serializer:
    metadata:
        directories:
            HeztenCoreBundle:
                namespace_prefix: "Hezten\\CoreBundle"
                path: "%kernel.root_dir%/serializer/HeztenCoreBundle"
在上面选择的路径中,我为每个模型设置排除策略添加了一个yml文件到所有:

Hezten\CoreBundle\Model\Enroled:
    exclusion_policy: ALL
我在继承这些模型的实体上使用注释来公开所需的信息


我不知道这是否是最好的方法,但对我来说效果很好

看看。。。和能否提供用于序列化为JSON的代码?请尝试将
@ExclusionPolicy
设置为
“无”
,而不是
“无”
,以匹配文档值。。。但我不这么认为。您的序列化JSON输出究竟应该是什么样子?@nifr感谢您的帮助,但小写字母不起作用。我想问题与继承有关,因为我有另一个版本使用相同的序列化代码,但没有对实体使用inhernition。我不确定您要实现什么。。。您是否希望在xml中包含学生和主题属性。。。只是为了让它正确。。。您说其他属性包含在json输出中。。。你明确地排除了学生和学科。。。两次这就是你想要的吗?什么时候抛出异常?如果将映射添加到扩展实体中?
    $students = $this->get('hezten_core.manager.enroled')->findEnroledBySubject($subject);

    $view = View::create()
    ->setStatusCode(200)
    ->setFormat('json')
    ->setData($students);

    return $this->get('fos_rest.view_handler')->handle($view);
jms_serializer:
    metadata:
        directories:
            HeztenCoreBundle:
                namespace_prefix: "Hezten\\CoreBundle"
                path: "%kernel.root_dir%/serializer/HeztenCoreBundle"
Hezten\CoreBundle\Model\Enroled:
    exclusion_policy: ALL