我已經在我的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