更新 Doctrine 后,Symfony 中的“ObjectManager 和 EntityManagerInterface 之间的兼容性”是什么?

Phi*_*rde 4 php orm doctrine symfony composer-php

在我的 Symfony 项目中尝试更新( composer update )后出现错误。

我寻找了一个解决方案,我发现有必要修改实体和构造函数中的使用和类型提示..我已经完成了!

然后,我重新启动了更新,但发生了不同的错误并且更新未完全完成。

结果:我的网站已关闭并显示兼容性错误。

看这个:

编译错误:App\DataFixtures\AppFixtures::load(Doctrine\ORM\EntityManagerInterface $manager) 的声明必须与 AppFixtures 中的 Doctrine\Common\DataFixtures\FixtureInterface::load(Doctrine\Common\Persistence\ObjectManager $manager) 兼容。 php第8行`

我不明白,兼容性是什么?

我不知道如何发布我的代码..(控制器,YAML,实体,..)但我尝试过。我的项目在 bug 出现之前就在 GitHub 上,也许它会很有用(如果你需要……)

这是我的 AppFixtures.php :

<?php

namespace App\DataFixtures;

use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\ORM\EntityManagerInterface;

class AppFixtures extends Fixture
{
    public function load(EntityManagerInterface $manager)
    {
        // $product = new Product();
        // $manager->persist($product);

        $manager->flush();
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 7

我想现在要使用 symfony 4.3 更正 lhor kostrov,您需要使用 ObjectManager fromDoctrine\Persistence\ObjectManager 而不是 fromDoctrine\Common\Persistence\ObjectManager