我将Symfony 3.4与Doctrine一起使用,这就是我获取其中一个存储库的方式:
$members = $this->getDoctrine()->getRepository(Member::class)->getAllMembersForClient($client);
使用PhpStorm进行开发,IDE不知道方法getRepository(Member:class)
返回什么,因此不提供自动完成。所以它向我显示了方法调用getAllMembersForClient($client)
有没有好办法解决这个问题?其他Doctrine用户如何处理这个问题?
答案 0 :(得分:2)
仔细检查您是否安装了'Symfony'插件,因为它通常提供了识别getRepository(Member::class)
将注释(或其他方式)定义的存储库返回PHPStorm的功能。
您应该可以在菜单中找到它:设置>插件> {搜索'symfony'}。如果它不在列表中,则在插件列表下“浏览存储库...”。
您必须为每个项目启用它(文件>设置>语言&框架> PHP> Symfony)&还安装了Php Annotation插件。
答案 1 :(得分:1)
最简单的方法是使用临时变量和typehint:
/* @var $membersRepository MemberRepository */
$membersRepository = $this->getDoctrine()->getRepository(Member::class);
$members = $membersRepository->getAllMembersForClient($client);