2011-12-19 30 views
5

私のsymfony2アプリケーションでは、2つのデータベース接続があります。エンティティクラスを別々にしておきたいので、エンティティクラスを1つのバンドルに、 。私のバンドルを呼び出そうとするときしかし、そのエンティティの名前空間として登録されていない何らかの理由で、エラーは次のとおりです。symfony 2:エンティティの名前空間に別の名前空間を追加

Unknown Entity namespace alias 'AcmeStaffBundle'. 
500 Internal Server Error - ORMException 

私はそれが実体の名前空間を設定し、どこを探している、と私はそれを見つけましたキャッシュされたファイルに保存する

$e = new \Doctrine\ORM\Configuration(); 
$e->setEntityNamespaces(array('AcmeStoreBundle' => 'Acme\\StoreBundle\\Entity')); 

これをどのようにしてアレイに追加できますか?

NEW EDIT:

次のように私のconfig.ymlが問題を明確に助けるべきである:事前に

orm: 
    entity_managers: 
     default: 
      connection:  default 
      mappings: 
       AcmeStoreBundle: ~ 
     Foo: 
      connection:  Foo 
      mappings: 
       AcmeFooBundle: ~ 

おかげで、あなたを保つことによって何を意味するか

+0

あなたはあなたの問題を解決しましたか? entity_managers: デフォルト私は何を意味するのか、このありえないが、私は何を意味することは、私は私のエンティティを作成したいということでしたが、それらが接続しているデータベースに依存して別々のファイルいや –

答えて

0

全くわかりませんエンティティは「別々」ですが、同じデータベース内の2つの異なるテーブルに1つのエンティティをマップしようとしている場合、教義の制限としてリストされているので、それは可能ではないと思います。here

+3

は、私のconfig.ymlに私は 'ORM を持っていると思いました。 接続:デフォルト マッピング: AcmeStoreBundle:〜 はFoo: 接続:Fooの マッピング: AcmeAnotherBundle:〜 ' – Matt

1

生成されたCRUDフォームを使用しようとしたとき、私はこの問題を正確に抱えていました。

$em = $this->getDoctrine()->getEntityManager('Foo'); 
0

複数のエンティティマネージャを使用の場合:

http://symfony.com/doc/master/cookbook/doctrine/multiple_entity_managers.html

http://symfony.com/doc/master/reference/configuration/doctrine.html#mapping-configuration

テイクを何が最終的に、問題はこのようgetEntityManager()にパラメータとして好適エンティティマネージャの名前を追加した解決しましたのパラメータを参照してください。

... 

orm: 
    auto_generate_proxy_classes: %kernel.debug% 
    default_entity_manager: default 
    entity_managers: 
     default: 
      connection: default 
      mappings: 
       OneBundle: 
        prefix: One\Bundle\Entity\Namespace 
     other: 
      connection: other # check this :p 
      mappings: 
       OtherBundle: 
        prefix: Other\Bundle\Entity\Namespace