2016-07-25 64 views
3

我嘗試按照本指南安裝Sonata Media Bundle到Symfony CMF中:https://sonata-project.org/bundles/media/3-x/doc/reference/installation.html。此命令Sonata Media Bundle missing entity類別

php app/console sonata:easy-extends:generate --dest=src SonataMediaBundle 

,使一個全新的捆綁ApplicationSonataMediaBundle有幾個實體:

  • 畫廊
  • GalleryHasMedia
  • 媒體

,但我得到的錯誤實體類別當我想要進入下一步時不存在:

app/console doctrine:schema:update --force 

這是完全錯誤:

[Doctrine\ORM\Mapping\MappingException]                         
    The target-entity Application\Sonata\ClassificationBundle\Entity\Category cannot be found in 'Application\Sonata\MediaBundle\Entity\Med 
    ia#category'. 

有沒有人誰可以幫我解決這個問題?

在此先感謝。

更新:

# sonata_classification.yml: 

sonata_classification: 
    # ... 

doctrine: 
    orm: 
     entity_managers: 
      default: 
       #metadata_cache_driver: apc 
       #query_cache_driver: apc 
       #result_cache_driver: apc 
       mappings: 
        #ApplicationSonataClassificationBundle: ~ 
        SonataClassificationBundle: ~ 
+0

是否安裝並註冊了分類包? – greg0ire

+0

新索納塔\ ClassificationBundle \ SonataClassificationBundle(),..是的,它是 –

+0

貌似你不是唯一一個:https://github.com/sonata-project/SonataMediaBundle/issues/1084。這可能是一個錯誤。 – greg0ire

回答

1

看起來像你只需要創建一個sonata_classification.yml文件,如the classification docs

+0

謝謝greg0ire,我複製並將給定的示例粘貼到該文件中。你可以在我的第一篇文章中看到它。它應該足夠嗎? –

+0

我不確定。試試吧,我們會看到的。 – greg0ire

+0

如果我在config.yml中包含sonata_classification.yml,那麼我可以請求cmf頁面。如果我不包含它,那麼當我想更新數據庫,但然後爲實體媒體而不是實體類別時,同樣的錯誤顯示在cli上。 –

6

我必須設置該配置選項來得到它的工作描述:

sonata_media: 
    class: 
     media: Application\MediaBundle\Entity\Media 
     gallery: Application\MediaBundle\Entity\Gallery 
     gallery_has_media: Application\MediaBundle\Entity\GalleryHasMedia 
    # ... 

還有:

doctrine_phpcr: 
    # ... 

    odm: 
     auto_mapping: true 
     mappings: 
      SonataMediaBundle: 
       prefix: Sonata\MediaBundle\PHPCR 
      ApplicationSonataMediaBundle: 
       prefix: Application\Sonata\MediaBundle\PHPCR 
-1

我解決了這個問題,所以:

// app/AppKernel.php 
public function registerBundles() 
{ 
    return array(
     // ... 
     new Application\Sonata\ClassificationBundle\ApplicationSonataClassificationBundle(), 
     // ... 
    ); 
} 

php bin/console doctrine:schema:update --force 
0

我有安裝包的消息(這使分類和媒體捆綁使用IT)後,同樣的問題。我在新聞之前配置了媒體和分類,並收到與OP相同的錯誤。在查看代碼後,我注意到媒體包允許爲類別指定另一個類。這阻止了我的錯誤。

sonata_media: 
    class: 
     # my own bundle namespaces for media and classification bundles 
     media: Application\Sonata\MediaBundle\Entity\Media 
     gallery: Application\Sonata\MediaBundle\Entity\Gallery 
     gallery_has_media: Application\Sonata\MediaBundle\Entity\GalleryHasMedia 
     category: Application\Sonata\ClassificationBundle\Entity\Category 
相關問題