2016-07-25 2 views
3

J'essaie d'installer le bundle Sonata Media dans le Symfony CMF en suivant ce guide: https://sonata-project.org/bundles/media/3-x/doc/reference/installation.html. Cette commandeSonata Media Bundle entité manquante Catégorie

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

fait un nouveau paquet tout ApplicationSonataMediaBundle avec quelques entités:

  • Galerie
  • GalleryHasMedia
  • médias

Mais je reçois l'erreur que l'entité Catégorie n'existe pas quand je veux passer à l'étape suivante:

app/console doctrine:schema:update --force 

Ceci est l'erreur complète:

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

Y at-il quelqu'un qui peut me aider à résoudre ce problème?

Merci d'avance.

Mise à jour:

# 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

L'ensemble de classification est-il installé et enregistré? – greg0ire

+0

nouveau Sonata \ ClassificationBundle \ SonataClassificationBundle(), .. oui c'est –

+0

semble que vous n'êtes pas le seul: https://github.com/sonata-project/SonataMediaBundle/issues/1084. Ce pourrait être un bug. – greg0ire

Répondre

1

On dirait que vous avez juste besoin de créer un fichier sonata_classification.yml comme décrit dans the classification docs

+0

Merci greg0ire, j'ai copié et collé l'exemple donné dans ce fichier. Vous pouvez le lire dans mon premier message. Cela devrait-il suffire? –

+0

Je ne suis pas sûr. Essayez-le, nous verrons. – greg0ire

+0

si j'inclus sonata_classification.yml dans config.yml alors je suis en mesure de demander les pages cmf. si je ne l'inclue pas alors la même erreur apparaît comme sur le cli quand je veux mettre à jour la base de données mais pour le média d'entité au lieu de la catégorie d'entité. –

6

je devais définir cette option de configuration pour l'obtenir au travail:

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

Et aussi:

doctrine_phpcr: 
    # ... 

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

i résolu ce problème afin:

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

et

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

J'ai eu le même problème après l'installation de faisceau de nouvelles (qui porte des faisceaux de classification et des médias avec elle). J'ai configuré les médias et la classification avant les nouvelles et j'ai reçu la même erreur que l'OP. Après avoir regardé le code, j'ai remarqué que le bundle média permettait de spécifier une autre classe pour la catégorie. Cela a arrêté l'erreur pour moi.

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