使用Symfony2和Doctrine为用户分隔数据库

时间:2015-09-08 19:30:54

标签: php mysql symfony doctrine-orm

这样做的背景是我们有一个现有的网站,它将与新网站有点联系,因此使用相同的用户群会很有意义。

因此,我们希望使用相同的用户数据库。我尝试的方式不起作用,添加两个数据库并提供相同的实体。这也是一个不同的Symfony项目,我可以在同一个项目上进行,但分离它更方便,因为它可能会在以后的不同服务器上运行。

如何让我的用户提供程序以最简单或最可靠的方式从另一个MySQL数据库中获取用户?

1 个答案:

答案 0 :(得分:0)

您是否查看过使用多个实体经理的文档?

http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html

您可以为多个数据库连接设置配置,并根据捆绑包定义默认使用的连接。

或者,您可以明确选择与

一起使用的连接
$this->get('doctrine')->getManager('<your custom manager name>');

如果您正在使用security.yml中指定的用户提供程序(使用的方法here),则可以在服务定义中为备用连接注入userRepository。

  your.definition.of.user.provider:
    class: YourBundle\Entity\UserProvider
    arguments:
      - @=service('doctrine').getRepository('YourBundle:User', '<alternate manager name goes here>')