我在Symfony项目中为Doctrine存储库提供了以下服务定义:
my_custom_repository_service:
class: My\Custom\ClassName
factory_service: doctrine.orm.entity_manager
factory_method: getRepository
arguments: [MyCustom:ClassName]
这样调用此服务时:
$repository = $this->container->get('my_custom_repository_service')
PhpStorm认为$repository
是My\Custom\ClassName
而不是它实际上的Doctrine存储库。有可能解决这个问题吗?
答案 0 :(得分:1)
您应该将服务的class
属性更改为Doctrine\ORM\EntityRepository
:
my_custom_repository_service:
class: Doctrine\ORM\EntityRepository
factory_service: doctrine.orm.entity_manager
factory_method: getRepository
arguments: [MyCustom:ClassName]
在这种情况下无关紧要,因为存储库工厂将生成您作为参数传入的类的实例(它也应该是Doctrine \ ORM \ EntityRepository的子类),但如果PHPStorm是接下来,这将解决它。