2015-09-21 3 views
1

SituationSymfony Sonata Média Bundle

J'utilise Symfony (et MongoDB comme DB) et que vous souhaitez intégrer le Bundle Sonata Média dans le paquet Administrateur Sonata. Avant d'ajouter l'ensemble de médias, tout fonctionnait bien. J'ai suivi le guide sur le site de Sonata et je suis apparu pour configurer le bundle d'administration de médias correctement; S'il vous plaît voir config ci-dessous

config.yml

doctrine_mongodb: 
    connections: 
     default: 
      server: mongodb://localhost:27017 
      options: {} 
    default_database: test_database 
    document_managers: 
     default: 
      mappings: 
       ApplicationSonataMediaBundle: ~ 
       SonataMediaBundle: ~ 
      auto_mapping: true 
... 
sonata_media: 
    # if you don't use default namespace configuration 
    #class: 
    # media: MyVendor\MediaBundle\Entity\Media 
    # gallery: MyVendor\MediaBundle\Entity\Gallery 
    # gallery_has_media: MyVendor\MediaBundle\Entity\GalleryHasMedia 
    default_context: default 
    db_driver: doctrine_mongodb # or doctrine_mongodb, doctrine_phpcr 
    contexts: 
     default: # the default context is mandatory 
      providers: 
       - sonata.media.provider.dailymotion 
       - sonata.media.provider.youtube 
       - sonata.media.provider.image 
       - sonata.media.provider.file 
      formats: 
       small: { width: 100 , quality: 70} 
       big: { width: 500 , quality: 70} 

Company.php document classe

namespace AppBundle\Document; 
use Doctrine\ODM\MongoDB\Mapping\Annotations as MongoDB; 
/** 
* @MongoDB\Document 
*/ 
class Company 
{ 
    /** 
    * @MongoDB\Id 
    */ 
    protected $id; 
    /** 
    * @MongoDB\String 
    */ 
    protected $title; 
    /** 
    * @MongoDB\String 
    */ 
    protected $slug; 
    /** 
    * @MongoDB\ReferenceMany(targetDocument="Application\Sonata\MediaBundle\Document\Media", mappedBy="image") 
    */ 
    protected $logo; 

companyadmin.php

->add('logo', 'sonata_type_model_list', array(), array('link_parameters' => array('context' => 'default'))) 

Problème

Maintenant, chaque fois que je vais dans l'interface d'administration de la société, je suis accueilli par le message "Aucun gestionnaire de document défini pour la classe Doctrine \ ODM \ MongoDB \ PersistentCollection"

Je suis relativement nouveau à Symfony ne vois pas vraiment ce qui ne va pas. S'il vous plaît pouvez-vous aider à donner un coup de fouet dans la bonne direction. Si je supprime le logo de l'administrateur, il recommence naturellement à fonctionner. S'il vous plaît aider, vraiment aucune idée ici

Répondre

0

Si vous utilisez: auto_mapping: true vous n'avez pas besoin mappings par défaut du gestionnaire de documents, sinon vous devez ajouter dans votre fichier de configuration:

orm: 
#  auto_mapping: true 

    entity_managers: 
     default: 
      connection: default 
      # naming_strategy: doctrine.orm.naming_strategy.underscore 
      mappings: 
       ApplicationSonataUserBundle: ~ 
       ApplicationSonataMediaBundle: ~ 
       YourBundle: ~ 
  • Vérifier dans AppKernel.php pour le ApplicationSonataMediaBundle() par exemple exécuter la commande:

  • run app/doctrine de la console: schema: mise à jour --force

Jetez un oeil à cette question aussi:

How to define/pass the entity manager for sonata-admin