如何为sonata-admin定义/传递实体管理器

And*_*erj 2 symfony fosuserbundle symfony-sonata sonata-admin

我按照本教程安装了带有FOSUserBundle的SonataAdmin.

现在我不断收到此错误消息:没有为Application\Sonata\UserBundle\Entity\User类定义实体管理器

但是我如何设置/传递EntityManager?我没有找到任何关于配置它或任何关于此错误意味着什么的提示.有人帮忙吗?


编辑#1:

正如所要求的那样,到目前为止,这是我在config.yml中为sonata所拥有的内容:

sonata_block:
    default_contexts: [cms]
    blocks:
        sonata.admin.block.admin_list:
            contexts:   [admin]
        sonata.block.service.text:
        sonata.block.service.rss:
Run Code Online (Sandbox Code Playgroud)

编辑#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'
Run Code Online (Sandbox Code Playgroud)

编辑#3: 我确实将auto_mapping设置为true,即使你默认也是如此.仍然没有解决这个问题.

小智 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之前缺少"\"....