1

在我的 Symfony2 浏览器游戏中,我有一个使用 Doctrine 2 ORM 的用户实体。游戏有经典和极速两个实例,主要是相互独立,都使用自己的数据库(结构相同)。唯一的问题是用户可以连接他们的帐户,所以要显示连接帐户的一些基本用户信息。为此,我有一个 classic_id 和 speed_id 作为连接到另一个用户实体的属性。但这将是一个跨数据库连接,据我所知,这在 Doctrine 2 中是不可能的。我还发现可以有多个具有自己连接的实体管理器,但我认为它们只能应用于完整的捆绑包,对吗?

所以在这里我需要一些解决这个问题的方法,最简单的方法是什么?

4

1 回答 1

2

实际上有可能进行跨数据库连接,但这与其说是一种功能,不如说是一种技巧,我不建议使用它。

要将实体从不同实体管理器之间的一个包中分离出来,您可以使用指向托管实体的“dir”属性。例如:

doctrine:
    orm:
        default_entity_manager:   default
        entity_managers:
            default:
                connection:       default
                mappings:
                    AppBundle:
                        dir:      Path/To/EntityFolder1
            anotherone:
                connection:       anotherconnection
                mappings:
                    AppBundle:
                        dir:      Path/To/EntityFolder2

还有记录不佳的“前缀”选项,但我还没弄清楚它是什么(你可以自己试验:))

问候!

于 2012-09-01T10:56:06.123 回答