2016-07-05 9 views
3

Symfony2で2番目のデータベースをプロジェクトに接続しようとしています。まず、接続を作成するためにいくつかのパラメータをparameters.ymlに追加しました。Symfony2との2番目のデータベース接続を作成するには?

その後、私は私のconfig.ymlを編集して、今のようになります、エラーを

$em = $this->getDoctrine()->getManager('circutor3'); 

をそして:

doctrine: 
    dbal: 
     default_connection: default 
     connections: 
      default: 
       driver: pdo_mysql 
       host:  "%database_host%" 
       port:  "%database_port%" 
       dbname: "%database_name%" 
       user:  "%database_user%" 
       password: "%database_password%" 
       charset: UTF8 
      circutor3: 
       driver: pdo_sqlsrv 
       host:  "%database_host_circutor3%" 
       port:  "%database_port_circutor%" 
       dbname: "%database_name_circutor%" 
       user:  "%database_user_circutor3%" 
       password: "%database_password_circutor3%" 
       charset: UTF8 
orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     naming_strategy: doctrine.orm.naming_strategy.underscore 
     auto_mapping: true 

最後に、私は私のコントローラに次のコードを使用して、接続を取得しようとしましたsymfony2によって返された:

"circutor3"という名前のDoctrine ORM Managerは存在しません。

circutor3は、私のシステムの外部にあるデータベースに接続するため、エンティティやオブジェクトを作成する必要はありません。情報を取得して配列を使用して格納するには、SELECTを実行する必要があります。

典型的なmysqli接続を作成して問題を解決するにはどうすればよいですか? Symfonyでこれを解決する方法がわかりません。 ありがとうございます。あなたは、接続ごとにentity_managerを作成する必要が

答えて

4
あなたは次のようにコントローラ内のデータベース接続にアクセスすることができ

$stmt = $connection->prepare($sql); 
$stmt->execute(); 
return $stmt->fetchAll(); 

いくつかの助けherehere

希望:

$connection = $this->getDoctrine()->getConnection('circutor3'); 

が、その後、接続を使用しますこのヘルプ

+0

こんにちは@IsaacBoscaようこそ! – Matteo

2

はsymfonyのドキュメント(http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html)によると、あなただけの接続ではなく、エンティティマネージャを定義しました。

orm: 
    default_entity_manager: default 
    entity_managers: 
     default: 
      ... 
     circutor3: 
      connection: circutor3 
      mappings: 
       AppBundle: ~ 
+1

あなたの答えをありがとう、しかし、私はいくつかのクエリを実行する必要があるので、私は接続を作成する必要があります、管理マネージャではありません。とにかくあなたの返事に感謝します:) –

関連する問題