如何解决如何使用存储库内的UserPasswordEncoderInterface编码密码?
在我的存储库中,我想做类似的事情:
public function generatePassword(Users $user,UserPasswordEncoderInterface $passwordEncoder)
{
return $passwordEncoder->encodePassword($user,$user->getPlainPassword());
}
,但是控制器内部的函数需要第二个参数。有没有办法自动加载或初始化UserPasswordEncoderInterface?
解决方法
您可以使用constructor injection来做到这一点。
您应该将UserPasswordEncoderInterface
加载到存储库类中,并将其全局保存(在您的类中)。然后,您可以使用它,而不必在函数参数中声明它。
类似这样的东西:
class Repository
{
private $passwordEncoder;
public function __construct(UserPasswordEncoderInterface $passwordEncoder)
{
$this->passwordEncoder = $passwordEncoder;
}
public function generatePassword(Users $user)
{
return $this->passwordEncoder->encodePassword($user,$user->getPlainPassword());
}
}
还可以提示您的服务。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。