4
我是Symfony2的新手。我的问题很简单。 我会在一个包中的不同主机和驱动程序中使用2个连接到数据库。如何在Symfony2中使用Doctrine2创建2个连接(mysql和postgresql)
你能帮我解决吗?
我是Symfony2的新手。我的问题很简单。 我会在一个包中的不同主机和驱动程序中使用2个连接到数据库。如何在Symfony2中使用Doctrine2创建2个连接(mysql和postgresql)
你能帮我解决吗?
你可以这样做:
doctrine:
dbal:
default_connection: alpha
connections:
alpha:
driver: pdo_mysql
host: localhost
dbname: alpha
user: root
charset: UTF8
beta:
driver: pdo_pgsql
host: localhost
dbname: beta
user: root
charset: UTF8
orm:
auto_generate_proxy_classes: %kernel.debug%
entity_managers:
alpha:
connection: alpha
beta:
connection: beta
你看,我们宣布在dbal
节两个连接,并在orm
一二实体管理器。
之后,您可以同时使用:
$emAlpha = $this->getDoctrine()->getEntityManager('alpha');
$emBeta = $this->getDoctrine()->getEntityManager('beta');
由于alpha
一个被定义为默认的,您可以访问它时没有指定名称:
$emAlpha = $this->getDoctrine()->getEntityManager();
谢谢!但是,如果我只在读模式下使用某些数据库,实体类中的setter方法是必须使用的? – Neka
需要我指定现有数据库(处于只读模式)的实体类中的字段类型? – Neka
是的,因为学说需要这些信息来正确地为你的实体提供水分...... – Herzult