如何定义/传递奏鸣曲管理员的实体管理器



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

现在我不断收到此错误消息:没有为类应用程序\奏鸣曲\用户捆绑包\实体\用户定义实体管理器

但是如何设置/传递实体管理器?我没有找到任何关于配置它的信息,也没有找到任何关于此错误含义的提示。有人帮忙吗?


编辑#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 管理员添加了实体管理器配置部分,文档中提到,如果保留为空,它应该只使用默认值。不过,它并不能解决我的问题。

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。仍然没有解决这个问题。

当您使用 php app/console sonata:admin:generate 它请求完全限定的模型类,因此您可以编写如下内容: AcmeDemoBundleEntityDemoEntity

问题是,当生成器为您创建服务时,它会添加行: arguments: [~, AcmeDemoBundleEntityDemoEntity, AcmeDemoBundle:DemoEntityAdmin]

这打破了它。

它适用于: arguments: [~, AcmeDemoBundleEntityDemoEntity, AcmeDemoBundle:DemoEntityAdmin]

注意在 Acme\Demo 之前缺少"\..."。

我的config.yml中缺少的是:

doctrine:
  [...]
  orm:
    [...]
    entity_managers:
      default:
        mappings:
          ApplicationSonataUserBundle: ~
          SonataUserBundle: ~

刚刚遇到了这个问题。

确保您轻松扩展了SonataUserBundle:

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

并将其加载到应用程序内核中.php

new ApplicationSonataUserBundleApplicationSonataUserBundle(),

请参阅此处的文档:https://github.com/sonata-project/SonataUserBundle/blob/master/Resources/doc/reference/installation.rst

然后自动映射就足够了,您无需定义手动映射。

相关内容

  • 没有找到相关文章

最新更新