Symfony用户实体(PhpStorm警告)

Symfony用户实体(PhpStorm警告),symfony,doctrine,phpstorm,Symfony,Doctrine,Phpstorm,我有自动生成setUser()方法的Symfony实体: 公共函数setUser(?User$User):self { $this->user=$user; 退还$this; } 在控制器中,我使用内置的getUser()方法,该方法返回UserInterface对象。当我将UserInterface对象传递给setUser()方法时,PhpStorm抱怨: Expected parameter of type '\App\Entity\User', 'object|\Symfony\Comp

我有自动生成setUser()方法的Symfony实体:

公共函数setUser(?User$User):self
{
$this->user=$user;
退还$this;
}
在控制器中,我使用内置的
getUser()
方法,该方法返回
UserInterface
对象。当我将
UserInterface
对象传递给
setUser()
方法时,PhpStorm抱怨:

Expected parameter of type '\App\Entity\User', 'object|\Symfony\Component\Security\Core\User\UserInterface' provided
我想写没有PhpStorm警告的代码。我应该创建新的User()将其传递给setUser()方法还是忽略它?

解决方案:(感谢Jakumi的评论)

公共函数调用(){ /**@var$user App\Entity\user*/ $user=$this->getUser(); $entity=新实体(); $entity->setUser($user); //... }
您可以注释函数返回的对象,如
/**@var$user*/$user=$this->getUser()(带换行符)。这将告诉静态分析,在这种情况下,getUser方法实际上返回了一个用户。我认为您缺少在实体用户中添加UserInterface类(用户实现UserInterface)