0

ここのドキュメントに従っています:

これらはコマンドです

php app/console doctrine:mapping:convert xml ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force
php app/console doctrine:mapping:import AcmeBlogBundle annotation
php app/console doctrine:generate:entities AcmeBlogBundle

ここに新しいエンティティが表示されます」

Acme/BlogBundle/AcmeBlogBundle/Entity

しかし、このようにエンティティを独自の名前空間に追加する方法を知りたかった

Acme/BlogBundle/AcmeBlogBundle/Entity/Foo
Acme/BlogBundle/AcmeBlogBundle/Entity/Bar

これは、Foo データベースと Bar データベースのエンティティを分離しておくことができるようにするためです。

アップデート:

または、次のように構成する必要があります。

Acme/BlogBundle/AcmeBlogBundle/Foo/Entity
Acme/BlogBundle/AcmeBlogBundle/Bar/Entity

考え?

4

1 に答える 1

7

ドキュメントの「複数のエンティティ マネージャーと接続を使用する方法」セクションを見ると、バンドル エンティティを 1 つまたは複数のエンティティマネージャーにバインドできることがわかります。それぞれが特定のデータベース接続に関連しています。

たとえば、2 つのデータベース接続 (first_connection と second_connection) を定義した場合、次のように 2 つのエンティティ マネージャーを追加できます。

entity_managers:
    first_manager:
        connection:       first_connection
        mappings:
            MyBundle:
                dir:      Path/To/EntityFolder/Foo/
    second_manager:
        connection:       second_connection
        mappings:
            MyBundle:
                dir:      Path/To/EntityFolder/Bar/

その後、エンティティ生成プロセスの最初の 2 つのステップで使用する適切なエンティティ マネージャを指定できます。

php app/console doctrine:mapping:convert xml ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force --em=first_manager --filter=MyTable

注:この--filterオプションは、エンティティを個別に生成できるようにするために使用されます。

php app/console doctrine:mapping:import AcmeBlogBundle annotation --em=first_manager --filter=MyTable

php app/console doctrine:generate:entities AcmeBlogBundle

エンティティは、バインドされた接続に従って適切なフォルダーに配置されます。

于 2012-11-29T20:41:16.910 に答える