簡體   English   中英

如何為sonata-admin定義/傳遞實體管理器

[英]How to define/pass the entity manager for 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:

編輯#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,即使你默認也是如此。 仍然沒有解決這個問題。

當你使用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之前缺少“\\”....

我的config.yml中缺少的是:

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

剛出現這個問題。

確保您輕松擴展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

然后自動化就足夠了,您不需要定義手動映射。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM