Symfony 5.1.3 清除缓存时出现问题:尝试从命名空间加载 class "MappingDriverChain"

Symfony 5.1.3 Issue while clearing the cache: Attempted to load class "MappingDriverChain" from namespace

我已将我的 symfony 应用程序更新为 5.1.3。但从那以后,在清除缓存时出现 class 缺失异常。

In App_KernelDevDebugContainer.php line 1050:
                                                                               
  Attempted to load class "MappingDriverChain" from namespace "Doctrine\Common\Persistence\Mapping\Driver".                                               
  Did you forget a "use" statement for "Doctrine\Persistence\Mapping\Driver\MappingDriverChain"?    

我检查了缓存文件,symfony 确实在缓存中请求这个 class。从其他一些 SO post 我得到的印象是学说结构已经改变。我在所有存储库 class 上也遇到了类似的问题,我必须在其中进行此更改

Doctrine\Persistence\ManagerRegistry => Doctrine\Common\Persistence\ManagerRegistry

关于同一个问题,我看到了类似的 SO post,说更新到最新版本就可以解决问题。但就我而言,这并不成功。
是 symfony 版本问题还是其他一些配置问题。
而且我还创建了两个数据库连接,都是 MySQL。不确定这是否与问题有任何联系。

这是我现在的composer.json & composer.lock

我找到了解决问题的办法。在作曲家更新时,doctrine/persistence 更新为 V2.0.0 & doctrine/common 更新为 V3.0.2。而且我认为这两个版本还不兼容 symfony/orm V2.0 所以我不得不降级 doctrine 版本以使应用程序再次运行。

composer require doctrine/common:2.13.3 --update-with-dependencies

  - Downgrading doctrine/persistence (2.0.0 => 1.3.7): Loading from cache
  - Downgrading doctrine/common (3.0.2 => 2.13.3): Loading from cache

现在应用程序在 symfony 5.1.3 中运行。
如果我因这次降级遇到任何问题,将会更新。

如果您使用 doctrine-bundle,我通过将其更新为 ^2.0 = 2.5.7.

来修复它