在我的Symfony2 browsergame中,我有一个使用Doctrine 2 ORM的用户实体。游戏有两个实例,经典和速度,它们主要是相互独立的,并且都使用它自己的数据库(相同的结构)。唯一的问题是用户能够连接他们的帐户,因此应显示所连接帐户的一些基本用户信息。为此我有一个classic_id和speed_id作为连接到另一个用户实体的属性。但这将是一个跨数据库连接,据我所知,这在Doctrine 2中是不可能的。我还发现有多个实体经理可以拥有自己的连接,但我认为它们只能应用于完整的包,对吗?
所以在这里我需要解决这个问题的一些方法,最简单的方法是什么?
答案 0 :(得分: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
“前缀”选项也很差,但我还没弄清楚它是什么(你可以自己试验:))
问候!