“传递给ApiPlatform \ Core \ Bridge \ Doctrine \ Orm \ Metadata \ Property \ DoctrineOrmPropertyMetadataFactory :: __ construct的参数1必须是实例...”

问题描述

当尝试安装Api平台(或在现有的Api平台安装上运行composer update时,出现如下错误

未捕获的错误:参数1传递给ApiPlatform \ Core \ Bridge \ Doctrine \ Orm \ Metadata \ Property \ DoctrineOrmPropertyMetadataFactory :: __ construct()必须是Doctrine \ Common \ Persistence \ ManagerRegistry的实例,Doctrine \ Bundle \ DoctrineBundle的实例\ Registry给定,在第1530行的App_KernelDevDebugContainer.PHP调用[“ exception” => TypeError {…}]

我该怎么做才能正确安装Api-Platform?为什么更新失败?

解决方法

在发布新版本的Api-Platform之前(可能会很快推出),您可以通过将其添加到composer.json中来回避问题:

"conflict": {
    "doctrine/common": ">= 3.0","doctrine/persistence": "^1.0"
}

(由于您可能已经拥有一个conflict键,所以只需将一行添加到现有的conflict规则中即可。)

已发布doctrine/common的新版本,并且当前版本的Api-Platform与之不兼容。

在不久的将来,一旦发布了新版本的Api-Platform,您就可以删除该行。

Here是一个问题,您可以随时关注讨论,并希望在此捆绑包级别跟踪问题何时得到解决。


这不再是必需的。您可以使用最新的Api-Platform软件包来更新到最新的Doctrine软件包,并且每个软件包都可以正常工作。