【问题标题】:How do I encode password with UserPasswordEncoderInterface inside a repository?如何在存储库中使用 UserPasswordEncoderInterface 对密码进行编码?
【发布时间】:2020-08-14 08:51:09
【问题描述】:

在我的存储库中,我想做类似的事情:

public function generatePassword(Users $user, UserPasswordEncoderInterface $passwordEncoder)
{
    return $passwordEncoder->encodePassword($user,$user->getPlainPassword());
}

但是控制器内部的函数需要第二个参数。有没有办法自动加载或初始化 UserPasswordEncoderInterface?

【问题讨论】:

    标签: symfony4 php-7.1


    【解决方案1】:

    您可以使用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());
        }
    }
    

    还输入提示您的服务。

    【讨论】:

      猜你喜欢
      • 2018-02-08
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2010-12-11
      相关资源
      最近更新 更多