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