3

SonataAdminBundle 内で使用するために SonataMediaBundle をセットアップして使用しようとしています。SMB のドキュメントのすべての手順を読んで実行します。コマンドを実行すると:

php app/console sonata:easy-extends:generate SonataMediaBundle

デフォルトでは、これによりフォルダーにバンドルが作成app/されるため、手動でsrc/フォルダーがあるべきフォルダーに移動します。アプリケーションにアクセスしようとするたびに、次のエラーが発生します。

MappingException: クラス 'Application\Sonata\UserBundle\Entity\User' がチェーン構成された名前空間 Sonata\MediaBundle\Entity に見つかりませんでした

理由はわかりませんが、参照を探してどこでもチェックしましたが、何も見つかりませんでした。これを修正したり、手がかりを教えてくれる人はいますか?

4

3 に答える 3

3

読んでいくつかのことを試した後、エラーの場所を見つけました。私のドクトリン設定には次のものがあります:

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
#   auto_mapping: true
    entity_managers:
        default:
            mappings:
                ApplicationSonataMediaBundle: ~
                SonataMediaBundle: ~

auto_mapping 句を削除することで、Doctrine のマッピング ディレクトリに UserBundle を登録しなくなりました。したがって、 User エンティティが見つかりません。したがって、解決策は、構成auto_mapping: trueからコメントを外してそのentity_manager.default.mappings部分にコメントを付けるか、セクションでユーザーバンドルを明示的に指定することでした。最初のコードを選択すると、コードは次のようになります。

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    auto_mapping: true
#    entity_managers:
#        default:
#            mappings:
#                ApplicationSonataMediaBundle: ~
#                SonataMediaBundle: ~
于 2014-02-12T14:15:08.103 に答える
0

もう一度削除して、次のコマンドを実行しますphp app/console sonata:easy-extends:generate --dest=src SonataMediaBundle...--dest=srcファイルを移動するだけでは、すべての名前空間が変更されるわけではありません。

于 2014-02-12T13:40:59.717 に答える
0

私はそれがあるべき場所に解決策を見つけました:

doctrine:
    orm:
        auto_generate_proxy_classes: %kernel.debug%
        entity_managers:
            default:
                auto_mapping: true
                mappings:
                    ApplicationSonataMediaBundle: ~
                    SonataMediaBundle: ~

auto_mapping: true は doctrine、orm、entity_managers、default セクションにある必要があり、doctrine、orm にはありません。

于 2015-08-04T08:09:27.743 に答える