2012-08-14 71 views
2

在Symfony2的不同DBAL連接我在我的班級我config.yml文件中的兩個連接如何獲得Doctrine2

doctrine: 
     dbal: 
     default: 
     connection2 

然後,我用這個

$em = $this->container->get('doctrine')->getEntityManager();

但越來越默認連接。我如何使用第二個連接

是否有可能我可以使用它從服務。

回答

3

你必須定義在config.yml

doctrine: 
    dbal: 
     default_connection: connection1 
     connections: 
      connection1: 
       ... 
      connection2: 
       ... 
    orm: 
     default_entity_manager: em1 
     entity_managers: 
      em1: 
       connection: connection1 
       .... 
      em2: 
       connection: connection2 

不,你可以訪問實體mangager既具有DBAL連接和實體管理器:

$em = $this->container->get('doctrine')->getEntityManager(); 
// Returns $em1/connection1 

$em = $this->container->get('doctrine')->getEntityManager('em1'); 
// Returns $em1/connection1 

$em = $this->container->get('doctrine')->getEntityManager('em2'); 
// Returns $em2/connection2 
+0

感謝您的回覆,我可以通過在我的service.yml中,這樣我就可以直接使用$ em。我想知道哪些參數傳遞給構造函數,在構造函數中寫什麼代碼,以便我不需要明確地獲取文件中的連接 – user825904 2012-08-14 07:38:25