我已经在我的ZF2项目中使用Doctrine建立了一个多数据库连接,一个从数据库读取,另一个从数据库读取。ZF2原则共享实体池
找到用户:单独使用时,但是当我尝试在同一实体同时使用,像
一切工作良好
$ USER = $这个 - >getReaderObjectManager() - > getRepository('Entity \ User') - > findOneBy(array('username'=>'xpto'));
,然后尝试改变一些东西:
$这个 - >getWriterObjectManager() - >留存($用户); $ user-> setBlabla('bla');
,然后尝试刷新它:
$这个 - >getWriterObjectManager() - >刷新();
没有发生。不好。
似乎readerObjectManager和writerObjectManager有自己独立的“实体池”,所以我不能坚持,并从其他经理改变一个实体。
有没有办法将一个实体从一个管理者传递给另一个管理者,或引用它,或者简单地说两个管理者共享相同的“实体库”?
在此先感谢。
你能解释一下更多你是什么意思“在连接层面”? – MGP 2013-02-19 18:01:17
这意味着连接对象会决定读取和写入操作(通常发生在主/从环境中)。如果您的问题仅与PHP内存相关,请仅使用非常智能的存储库。 – Ocramius 2013-02-19 18:06:07
唯一的问题是必须从一个数据库中读取数据并在另一个数据库(生产环境设置)中写入数据。那么,创建一个自定义的DBALConnection就行了?或者有没有办法,我可以绕过标准的orm_default连接,在插入/更新操作中更改连接信息“on the fly”basead并选择? – MGP 2013-02-19 18:18:30