Sol*_*ear 5 symfony doctrine-orm phpstorm
我有以下代码:
$repo = $this->get('doctrine.orm.default_entity_manager')
->getRepository('Acme:Foo');
Run Code Online (Sandbox Code Playgroud)
记录下来,由于我可以使用$repo,其方法和所产生的实体,所以代码正常运行。
但是,PhpStorm高亮显示了'doctrine.orm.default_entity_manager'字符串,并给我以下错误:
服务缺失
引用特定服务时,我的服务文件中出现了相同的错误。在此之后,很显然,自动完成功能不起作用。我当然可以使用以下解决方法:
/** @var \Doctrine\ORM\EntityManager $em */
$em = $this->get('doctrine.orm.default_entity_manager');
$em->getRepository('Acme:Foo');
Run Code Online (Sandbox Code Playgroud)
这样,我仍然会收到警告,但是自动补全功能可以正常工作。但是,我宁愿尽可能避免此类注释使我的代码保持干净,而且我几乎可以肯定有一个简单的解决方法。我当然已经多次清除了缓存。
我怎样才能解决这个问题?
编辑:我需要提到我正在使用Symfony2插件。
我们采取了以下措施来避免出现您所描述的问题:
在我们的services.yml中我定义了:
entity_manager:
alias: doctrine.orm.entity_manager
Run Code Online (Sandbox Code Playgroud)
问题是显然 Symfony 2 插件无法识别一些通常可用的“标准”服务。
现在使用
$this->get('entity_manager');
Run Code Online (Sandbox Code Playgroud)
激活的 Symfony 2 插件没有显示任何问题。
我们对Logger、Mailer 等其他“通用服务”使用非常类似的方法。
| 归档时间: |
|
| 查看次数: |
1544 次 |
| 最近记录: |