php - PhpStorm 中的 Doctrine 存储库提示
问题描述
这是一个两部分的问题。
首先,我似乎不知道如何使 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
PhpStorm 不建议使用该getUser()
方法。
我发现的唯一解决方法是:
/** @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
如何为这两种情况正确设置?
解决方案
推荐阅读
- c++ - 我将 std::string 传递给 boost 函数,该函数接受对该类型的 const 引用,但该值已发生突变
- python - 在保持纵横比的同时分配 N 个大小不等的矩形的算法
- java - 如何通过单击添加按钮将数据从一个活动移动到下一个活动(ListView)?
- java - 如何从 FieldName、FieldValue 结果图中读取 y 值?
- laravel - 路由器重定向后刷新页面
- ajax - shopify,从客户端发出ajax请求
- python - 如何在 Python 中处理格式错误的字符串数组?
- r - 使用 lapply 基于旧列创建新列
- git - 首先获取使用 SSH 克隆的 GIT 存储库的 HTTP/s 克隆 URL?
- python - 自定义 matplotlib 颜色栏的限制