我的目標是通過訪問One Project Bundle中的多個數據庫。Symfony2:如何從SAME Bundle中的MULTIPLE Existing Databases生成實體?
我通過Symfony2的文檔閱讀和管理,做好如下:使用
- configure multiple connections for different Bundles
generate Entities from ONE Existing Database:
php app/console doctrine:mapping:import AcmeBlogBundle annotation php app/console doctrine:generate:entities AcmeBlogBundle
但我不能找到辦法到從同一個包中的多個現有數據庫生成實體,以便我可以訪問One Bundle中的多個數據庫。有任何想法嗎?
P.S.我不熟悉教義。所以實際上如果沒有Doctrine的話就有辦法做Symfony2,我也會很感激。
更新#1:
Cerad's answer來相當接近。但還有一個問題尚未解決。由於我在不同的數據庫中有相同的表名,最好將它們組織到實體文件夾內部的分區文件夾中。我查看過類似帖子,如this和that。但是這些解決方案並不適合我。他們的解決方案只是將所有實體直接放到實體文件夾中,而忽略config.yml中的指定dir選項。有解決這個問題的方法嗎?
感謝您的回覆。仍然有一個問題尚未解決。因爲我在不同的數據庫中有一些相同的表名。所以最好將它們組織到實體文件夾內的分部文件夾中。我已檢查http://stackoverflow.com/questions/13765785/doctrine-generate-entities-namespace-issue,但它似乎不能做對嗎?是否有解決此問題的方法 – Capitaine 2013-03-28 09:35:13
唯一的解決方法是將數據庫名稱添加到表名中。但這樣做意味着各種教條命令將停止工作,這意味着硬編碼數據庫名稱。根據您的需要,您可能可以使用sql視圖來基本更改表名稱。我認爲你使用多個捆綁包會更好。 – Cerad 2013-03-28 12:21:51
您應該創建一個新的symfony安裝,生成一個捆綁下拉您的表格,然後編輯命名空間並將這些文件複製到您現有的捆綁包中。這是一種痛苦,但比試圖在映射生成器中解決問題更容易。你可以肯定有實體下的命名空間(我在我的項目中有幾個級別)。 'Bundle/Entity/ThingsThatMakeMeMad/SpilledMilk.php'等 – 2013-04-02 14:18:30