Doctrine orm 存储库(条令\ORM\EntityRepository)不接受条令\Persistence\ObjectRepository
从1.0升级到1.3时,我遇到了静态代码分析的问题Doctrine orm 存储库(条令\ORM\EntityRepository)不接受条令\Persistence\ObjectRepository,doctrine-orm,doctrine,phpstan,Doctrine Orm,Doctrine,Phpstan,从1.0升级到1.3时,我遇到了静态代码分析的问题 Repository (Doctrine\ORM\EntityRepository) does not accept Doctrine\Persistence\ObjectRepository. 问题在于这个 <?php declare(strict_types=1); namespace Appbundle\Repository\Company; class Co
Repository (Doctrine\ORM\EntityRepository) does not accept
Doctrine\Persistence\ObjectRepository.
问题在于这个
<?php
declare(strict_types=1);
namespace Appbundle\Repository\Company;
class CompanyRepository
{
/**
* @var EntityManagerInterface
*/
private $entityManager;
/**
* @var EntityRepository
*/
private $entityRepository;
/**
* @var ProfileRepository
*/
private $profileRepository;
public function __construct(
EntityManagerInterface $entityManager,
) {
$this->entityManager = $entityManager;
$this->entityRepository = $entityManager->getRepository(Company::class);
}
代码作为getRepository EntityRepository工作,但getRepository的返回类型为ObjectRepository,因此不兼容。
使用1.0版。有人知道可能是什么吗 此错误是正确的。EntityManagerInterface从ObjectManager接口继承getRepository方法,其中
因此,您不能依赖于从方法返回的EntityRepository,因为实现可以选择只返回ObjectRepository
您可能应该键入其他内容的提示,例如EntityManager。此错误是正确的。EntityManagerInterface从ObjectManager接口继承getRepository方法,其中
因此,您不能依赖于从方法返回的EntityRepository,因为实现可以选择只返回ObjectRepository
您可能应该键入其他内容的提示,例如EntityManager。好的,我发现这是由于更改了名称空间。这是一个报告的错误
好的,我发现这是由于更改了名称空间。这是一个报告的错误
您有什么版本的PHPStan和PHPStan原则?您有什么版本的PHPStan和PHPStan原则?EntityManager和EntityRepository是两个完全不同的东西。我发现这是一个知识,但这是在Doctrine/Persistence 1.3版中完成的。我的意思是你应该键入提示EntityManager而不是EntityManager接口。有趣的事情。EntityManager不接受EntityManager接口。例如,条令\ORM\EntityManager不接受条令\ORM\EntityManager接口。是的,这是有道理的。我在任何地方都使用条令\ORM\EntityManager,它是有效的。EntityManager和EntityRepository是两个完全不同的东西。我发现这是一个知识,但这是在Doctrine/Persistence 1.3版中完成的。我的意思是你应该键入提示EntityManager而不是EntityManager接口。有趣的事情。EntityManager不接受EntityManager接口。例如,条令\ORM\EntityManager不接受条令\ORM\EntityManager接口。是的,这是有道理的。我在任何地方都使用条令\ORM\EntityManager,而且它很有效。