Symfony用户实体(PhpStorm警告)
我有自动生成setUser()方法的Symfony实体: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(?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)