【发布时间】:2013-12-26 20:05:06
【问题描述】:
尝试序列化具有 3 个嵌套对象属性的对象会导致
错误:达到“250”的最大函数嵌套级别
Entity Volunteer 的 OneToOne with Person、OnetoMany with Focuses 和 OneToMany with Skills。如果响应是序列化的$volunteer->getPerson();,则会出现预期的 json 响应。但是,$volunteer->getFocuses(); 也会触发最大嵌套级别错误。
更新
当 xdebug max 增加时,这在开发环境中会在 30 秒内超时。
控制器sn-p:
$em = $this->getDoctrine()->getManager();
$serializer = \JMS\Serializer\SerializerBuilder::create()->build();
$volunteer = $em->getRepository('HOTV2Bundle:Volunteer')->find($id);
$response = new JsonResponse($serializer->serialize($volunteer, 'json'));
【问题讨论】:
-
@MKhalidJunaid:谢谢,但我不知道 xdebug 会如何影响序列化程序。
-
我猜这是因为您启用了 xdebug ,如果是这种情况,请尝试增加 php.ini 中的限制
-
@MKhalidJunaid:啊,症状,而不是疾病。通过提高最大值或完全从 php.ini 中删除 xdebug 引用,脚本在 dev 中会在 30 秒时超时。所以现在我看到了 xdebug 如何影响性能,但是用嵌套对象序列化对象的原始问题仍未解决。
标签: json symfony jmsserializerbundle