0

我需要当用户登录时,他们使用第二个数据库进行身份验证,该数据库的连接不是默认数据库。我已经阅读了许多关于创建扩展 UserProviderInterface 的用户提供程序的帖子,但没有一个有效。

到目前为止我所做的:

  1. 我有一个自定义用户类 (MyCustomUser),它扩展了 FOSUser 类。
  2. 我在 config.yml 文件中定义了两个连接和两个实体管理器。
  3. 我在 security.yml 中定义了我的自定义用户类的提供者:

    提供者:

      chain_provider:
          chain:
              providers: [in_memory, fos_userbundle, myusers]
      ...
    
      myusers:
          entity: { class: myproject\myBundle\Entity\MyCustomUser}
    

问题是,当我尝试使用 MyCustomUser 实例的凭据(用户名/密码)登录时,Symfony 尝试根据默认连接验证此数据,其中 MyCustomUser 表不存在。换句话说,它试图从默认连接加载数据,并出现“表 default_connection.MyCustomUser 不存在”之类的错误。

我应该按照哪些步骤来加载我想要的实体管理器?

提前致谢!

4

1 回答 1

0

您需要将非默认实体管理器注入实现UserProviderInterface的自定义用户提供程序中。

然后在loadUserByUsername($username)方法中使用它。

于 2013-06-13T16:44:30.500 回答