2016-05-23 9 views
0

私はコードの目的を助けてくれるのではなく、私がしなければならないことをするためのアドバイスをしています。Symfony Multiple Databases

symfony3フレームワークをベースにしたWebアプリケーションを開発していますので、上司が複数の「グループ」でソリューションを開こうと思っていたため、私がしたことを修正する必要があります。実際には、グループはアプリケーションのグループのコンテンツとなるデータベースに対応します。

私はスキーマを使用して説明します。

ログインページ - >ログイン/パスワード/グループ

(exemple用)GROUP = A、データベース= db_group_a場合 GROUP = B、データベース= db_group_bの場合は、(。 。)

私はそれがはっきりしているかどうかわかりませんが、ここで私は何をしなければならないのですか?私は本当にSymfonyを使ってそれを行う方法を知らないのです。(シンプルなPHPでは、 )。あなたが私を助けることができたら、それはすばらしいでしょう。 ありがとう!

答えて

2

symfonyでは、あなたがこのように複数のデータベースを定義することができます。

$container->loadFromExtension('doctrine', array(
    'dbal' => array(
     'default_connection' => 'default', 
     'connections' => array(
      'default' => array(
       'driver' => '%database_driver%', 
       'host'  => '%database_host%', 
       'port'  => '%database_port%', 
       'dbname' => '%database_name%', 
       'user'  => '%database_user%', 
       'password' => '%database_password%', 
       'charset' => 'UTF8', 
      ), 
      'group_a' => array(
       'driver' => '%database_driver2%', 
       'host'  => '%database_host2%', 
       'port'  => '%database_port2%', 
       'dbname' => '%database_name2%', 
       'user'  => '%database_user2%', 
       'password' => '%database_password2%', 
       'charset' => 'UTF8', 
      ), 
      'group_b' => array(
       'driver' => '%database_driver2%', 
       'host'  => '%database_host2%', 
       'port'  => '%database_port2%', 
       'dbname' => '%database_name2%', 
       'user'  => '%database_user2%', 
       'password' => '%database_password2%', 
       'charset' => 'UTF8', 
      ), 
     ), 
    ), 

を今、あなたはログインして出た後、への特権ユーザーは、どのようなグループである、あなたはあなたのセッションでそれを設定して追加することができますこれに類似したクエリにパラメータ:

$allowed_db = 'group_a'; 
$customers = $this->get('doctrine') 
      ->getRepository('AcmeCustomerBundle:Customer', $allowed_db) 
      ->findAll(); 
+0

*ご注意:私は、一例として、ウェブからテストして取らないで、今のコード例を私のPC上で実行中のシンフォニーのコピーを持っていないので、* – Peon

+0

ねえ、ありがとう、それは素晴らしいよ!私はデータベースを管理しなければならないのはconfig.ymlだけだと考えました。さて、私はあなたのようなコードを書く必要がありますか? (最初のもの) – shqnks

+2

http://symfony.com/doc/current/cookbook/doctrine/multiple_entity_managers.html – Peon