Symfony PhpStorm不';不承认实体类别
PhpStorm似乎不认识我的任何条令实体类或它们的方法Symfony PhpStorm不';不承认实体类别,symfony,phpstorm,Symfony,Phpstorm,PhpStorm似乎不认识我的任何条令实体类或它们的方法 $comment = $em->getRepository('MyBundle:Comment')->findOneBy(array('id' => $id)); $comment->getId(); /* PHPSTORM THROWS WARNING: Method getId() not found in subject class */ 只有当我显式地对错误进行注释时,错误才会消失——这确实会使我的控
$comment = $em->getRepository('MyBundle:Comment')->findOneBy(array('id' => $id));
$comment->getId();
/* PHPSTORM THROWS WARNING: Method getId() not found in subject class */
只有当我显式地对错误进行注释时,错误才会消失——这确实会使我的控制器混乱不堪
/* @var \MyBundle\Entity\Comment $comment */
$comment = $em->getRepository('MyBundle:Comment')->findOneBy(array('id' => $id));
有没有办法在我的实体类中为PhpStorm记录这些内容
我正在PhpStorm 8中使用Symfony2插件。谢谢 我对Symfony2插件也有同样的问题,这可能不是一个好的解决方案,但它可以工作
/** @var EntityManager $em */
$em = $this->doctrine->getManager();
你的问题现在应该解决了。缓存文件夹中代理类的多个
getRepository
实现出现问题。只需更新到>=0.11.81,我就遇到了这个问题。通过清除条令元数据神奇地解决了问题:
php app/console doctrine:cache:clear-metadata
编辑:在symfony插件的GitHub reposiory中,有一个关于发生此问题时应做什么的简要说明:
自动完成(或其他)不起作用!救命啊强>
[……]
许多功能需要
app/cache/dev/appDevDebugProjectContainer.xml文件存在。它是
在开发环境(open/app_dev.php)中启动应用程序时生成
在浏览器或php应用程序/控制台中)
由于我的服务器是远程的,因此手动同步文件app/cache/dev/appDevDebugProjectContainer.xml
解决了我的问题
相反,当我在本地服务器上工作时,我上面编写的命令帮助我使autocomplete再次工作。现在,我更喜欢将存储库声明为服务,这样您就不会遇到这些类型提示问题:
services:
MyBundle\Entity\CommentRepository:
class: MyBundle\Entity\CommentRepository
public: true
factory: ['@doctrine', getRepository]
arguments:
- MyBundle\Entity\Comment
然后在控制器中:
use MyBundle\Entity\CommentRepository;
$comment = $this->get(CommentRepository::class)->findOneBy(['id' => $id]);
看起来很有希望,但我认为它只适用于静态方法,而且我认为它无法正确解析
MyBundle:
名称空间别名。谢谢!这比在每个实体上做评论要好。+1,为我工作。确切地说,对于Symfony 3:php bin/console原则:缓存:清除元数据