2

このチュートリアルに従って、FOSUserBundleを使用してSonataAdminをインストールしました。

今、私はこのエラーメッセージを受け取り続けます:クラスApplication \ Sonata \ UserBundle \ Entity\Userに定義されたエンティティマネージャーはありません

しかし、EntityManagerを設定/渡すにはどうすればよいですか?それを構成することについて、またはこのエラーが何を意味するかについてのヒントは何も見つかりませんでした。誰か助けてくれませんか?


編集#1:

求められたように、これまでのところ、ソナタのconfig.ymlにあるものは次のとおりです。

sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts:   [admin]
        sonata.block.service.text:
        sonata.block.service.rss:

編集#2:

Doctrine2 ORM Adminのエンティティマネージャー構成部分を追加しました。ドキュメントにnullのままにすると、デフォルトを使用する必要があると記載されています。それでも、それは私の問題を解決しません。

sonata_doctrine_orm_admin:
    # default value is null, so doctrine uses the value defined in the configuration
    entity_manager: '@doctrine.orm.entity_manager'

編集#3: auto_mappingもtrueに設定しましたが、デフォルトでもtrueに設定しました。この問題に対する解決策はまだありません。

4

3 に答える 3

6

これを使用する php app/console sonata:admin:generate と、完全に修飾されたモデルクラスが要求されるため、次のように記述します。 \Acme\DemoBundle\Entity\DemoEntity

問題は、ジェネレーターがサービスを作成するときに、次の行を追加することです。 arguments: [~, \Acme\DemoBundle\Entity\DemoEntity, AcmeDemoBundle:DemoEntityAdmin]

それはそれを壊します。

それは以下で動作します: arguments: [~, Acme\DemoBundle\Entity\DemoEntity, AcmeDemoBundle:DemoEntityAdmin]

Acme \Demo...の前に「\」がないことに注意してください。

于 2014-03-07T11:08:18.100 に答える
2

私のconfig.ymlに欠けていたのは:

doctrine:
  [...]
  orm:
    [...]
    entity_managers:
      default:
        mappings:
          ApplicationSonataUserBundle: ~
          SonataUserBundle: ~
于 2013-02-18T13:33:10.020 に答える
2

ちょうどこの問題がありました。

SonataUserBundleを簡単に拡張できることを確認してください。

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

AppKernel.phpにロードしています

new Application\Sonata\UserBundle\ApplicationSonataUserBundle(),

こちらのドキュメントを参照してください: https ://github.com/sonata-project/SonataUserBundle/blob/master/Resources/doc/reference/installation.rst

その後、自動マッピングで十分であり、手動マッピングを定義する必要はありません。

于 2013-09-14T08:19:51.467 に答える