0

ユーザーがログインして登録できるサイトを構築したいと考えています。ユーザー管理には FOSUserbundle を使用します。ここで、FOSUserBundle に他のバンドルとは異なるデータベース接続を使用したいと考えています。私の config.yml ファイルは次のようになります。

doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   "%database1_driver%"
                host:     "%database1_host%"
                port:     "%database1_port%"
                dbname:   "§database1_name%"
                user:     "%database1_user%"
                password: "%database1_password%"
                charset:  UTF8

            user:
                driver:   "%database2_driver%"
                host:     "%database2_host%"
                port:     "%database2_port%"
                dbname:   "%database2_name%"
                user:     "%database2_user%"
                password: "%database2_password%"
                charset:  UTF8

orm:
    default_entity_manager:   default
    entity_managers:
        default:
            connection:       default
            mappings:
                MyProjectMainBundle: ~
        user:
            connection:       user
            mappings:
                MyProjectUserBundle: ~

ページを読み込もうとすると、エラーが発生しますMappingException: The class 'MyProject\UserBundle\Entity\User' was not found in the chain configured namespaces MyProject\MainBundle\Entity, FOS\UserBundle\Model

FOSUserBundle のドキュメントに正確に従っていましたが、使用すると機能します

auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true

config.yml で。これに関する唯一のことは、ドキュメントから新しいエンティティで定義されているようなテーブルのみを生成することです。fos_user テーブル全体ではなく、id フィールドのみが生成されます。

以前にも同様の質問がいくつかあったことは知っていますが、そこからすべての解決策を試してみましたが、うまくいきませんでした。では、どうすればこれを修正できますか?それは可能ですか?私のプロジェクトは多くのテーブルを使用するので、別々のデータベースを使用する必要があり、あまり面倒になりたくないのです。

4

1 に答える 1

8
    user:
        connection:       user
        mappings:
            FOSUserBundle: ~
            MyProjectUserBundle: ~

エンティティ エラーを取り除くには、FOSUserBundle をマッピングに追加する必要があります

そして、config.ym に model_manager_name が設定されていることを確認してください。

fos_user:
    db_driver:     orm
    firewall_name: main
    user_class:    Cerad\Bundle\AccountBundle\Entity\AccountUser
    model_manager_name: user
于 2013-08-04T00:22:33.463 に答える