You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMS序列化报错:参数需为Doctrine\Common\Persistence\ManagerRegistry实例

错误原因解析

错误信息

Uncaught Error: 传递给JMS\Serializer\Metadata\Driver\AbstractDoctrineTypeDriver::__construct()的参数2必须是Doctrine\Common\Persistence\ManagerRegistry实例,实际传入的是Doctrine\Bundle\DoctrineBundle\Registry实例,调用位置在/var/www/mda-api/var/cache/prod/ContainerXJGxuAr/getJmsSerializer_MetadataDriverService.php第13行

问题代码

$result = $this->serializer->deserialize(
    $encoder->encode($jsonContent,'json'),
    Client::class,
    "json",
);

核心原因

  • 接口依赖版本不兼容
    JMS Serializer的AbstractDoctrineTypeDriver类构造函数要求传入Doctrine\Common\Persistence\ManagerRegistry接口实例,但你的项目中注入的Doctrine\Bundle\DoctrineBundle\Registry类,在新版本Doctrine中已经不再实现这个旧接口。

  • Doctrine命名空间变更
    随着Doctrine生态更新,Doctrine\Common\Persistence组件被废弃,相关接口迁移到Doctrine\Persistence命名空间下。当前你的Doctrine Bundle版本的Registry类实现的是新的Doctrine\Persistence\ManagerRegistry接口,和JMS Serializer依赖的旧接口不匹配。

  • JMS Serializer版本未适配
    你使用的JMS Serializer版本没有同步适配Doctrine的这次命名空间变更,仍然依赖旧的接口定义,导致容器注入时出现类型不匹配错误。

内容的提问来源于stack exchange,提问作者Malek Massoudi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:42:41