我按照本教程安装了带有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
然后自动映射就足够了,您无需定义手动映射。