如何在存储库中使用 UserPasswordEncoderInterface 对密码进行编码?
How do I encode password with UserPasswordEncoderInterface inside a repository?
在我的存储库中,我想做类似的事情:
public function generatePassword(Users $user, UserPasswordEncoderInterface $passwordEncoder)
{
return $passwordEncoder->encodePassword($user,$user->getPlainPassword());
}
但是控制器内部的函数需要第二个参数。有没有办法自动加载或初始化UserPasswordEncoderInterface?
您可以使用 constructor injection 来完成此操作。
您应该将 UserPasswordEncoderInterface
加载到您的存储库 class 中并全局保存(在您的 class 中)。您可以使用它而无需在函数参数中声明它。
像这样:
class Repository
{
private $passwordEncoder;
public function __construct(UserPasswordEncoderInterface $passwordEncoder)
{
$this->passwordEncoder = $passwordEncoder;
}
public function generatePassword(Users $user)
{
return $this->passwordEncoder->encodePassword($user,$user->getPlainPassword());
}
}
还有type-hint您的服务。
在我的存储库中,我想做类似的事情:
public function generatePassword(Users $user, UserPasswordEncoderInterface $passwordEncoder)
{
return $passwordEncoder->encodePassword($user,$user->getPlainPassword());
}
但是控制器内部的函数需要第二个参数。有没有办法自动加载或初始化UserPasswordEncoderInterface?
您可以使用 constructor injection 来完成此操作。
您应该将 UserPasswordEncoderInterface
加载到您的存储库 class 中并全局保存(在您的 class 中)。您可以使用它而无需在函数参数中声明它。
像这样:
class Repository
{
private $passwordEncoder;
public function __construct(UserPasswordEncoderInterface $passwordEncoder)
{
$this->passwordEncoder = $passwordEncoder;
}
public function generatePassword(Users $user)
{
return $this->passwordEncoder->encodePassword($user,$user->getPlainPassword());
}
}
还有type-hint您的服务。