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 添加了实体管理器配置部分,您在文档中提到如果留空,它应该只使用默认值。尽管如此,它并没有解决我的问题。

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,即使你默认情况下也是如此。仍然没有解决这个问题。

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

刚遇到这个问题。

确保您轻松扩展了 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 回答
2

我的 config.yml 中缺少的是:

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