问题描述
这是一个由两部分组成的问题。
首先,我似乎无法找出如何使 PHPStorm 正确提示 Doctrine 存储库:
实体看起来像这样:
/**
* @ORM\Entity(repositoryClass="UserRepository")
* @Entity @Table(name="users")
*/
class User
{
存储库如下所示:
use Doctrine\ORM\EntityRepository;
class UserRepository extends EntityRepository
{
public function getUser() {}
}
但是当像这样访问存储库方法时:
$userRepository = $em->getRepository(User::class);
$user = $userRepository->getU... // getUser() is not suggested
我发现的唯一解决方法是:
/** @var UserRepository $userRepository */
$userRepository = $em->getRepository(User::class);
但是每次我需要一些存储库时都这样做似乎有点麻烦。
另外,问题的第二部分是我不能使用存储库作为类属性:
private EntityManager $em;
private UserRepository $userRepository;
public function __construct(EntityManager $em) {
$this->em = $em;
$this->userRepository = $em->getRepository(User::class);
}
因为它说:
Incompatible types: Expected property of type '\MyProject\UserRepository','\Doctrine\Persistence\ObjectRepository|\MyProject\User|string' provided
如何为这两种情况正确设置?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)