symfony4 - 如何在存储库中使用 UserPasswordEncoderInterface 对密码进行编码?
问题描述
在我的存储库中,我想做类似的事情:
public function generatePassword(Users $user, UserPasswordEncoderInterface $passwordEncoder)
{
return $passwordEncoder->encodePassword($user,$user->getPlainPassword());
}
但是控制器内部的函数需要第二个参数。有没有办法自动加载 UserPasswordEncoderInterface 或初始化它?
解决方案
您可以通过使用构造函数注入来做到这一点。
您应该将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());
}
}
还要输入提示您的服务。
推荐阅读
- c# - 实现工具提示的抽象方法
- javascript - javascript“中断”会完全停止递归函数还是仅仅停止那个实例?
- docker - 非 root 用户的 docker 机密
- background - Ionic 3 - 当我们最小化应用程序时显示锁定屏幕
- javascript - 用于切换的 Jquery 单击功能不起作用
- oracle - ORA-04091: 在触发器中使用游标插入其他表时,表正在发生变化
- tensorflow - 测试损失随着学习率 0 发生奇怪的变化?
- linux - 为什么更新命令显示相同的 ppa?
- sysml - 如何将 SDL 信号列表转换为 SysML 中的类似内容?
- php - 致命错误:未捕获的 SoapFault 异常:[WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from.......failed to load external entity