【问题标题】:Symfony Sonata Media BundleSymfony Sonata 媒体包
【发布时间】:2015-12-17 15:54:39
【问题描述】:

情况

我正在使用 Symfony(和 MongoDB 作为数据库)并希望将 Sonata Media Bundle 集成到 Sonata Admin 包中。在添加媒体包之前,一切正常。

我按照 Sonata 网站上的指南进行操作,似乎正确设置了媒体管理包;请看下面的配置

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 文档类

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;

公司管理员.php

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

问题

现在,每当我进入公司管理界面时,都会看到消息“没有为类 Doctrine\ODM\MongoDB\PersistentCollection 定义文档管理器”

我对 Symfony 比较陌生,我真的不知道出了什么问题。请你能帮助在正确的方向戳一下。如果我从管理员中删除徽标,它自然会重新开始工作。请帮忙,这里真的一无所知

【问题讨论】:

    标签: php mongodb symfony sonata


    【解决方案1】:

    如果您使用:auto_mapping: true,则不需要文档管理器默认映射,否则您必须在配置文件中添加:

    orm:
    #        auto_mapping: true
    
        entity_managers:
            default:
                connection: default
               # naming_strategy: doctrine.orm.naming_strategy.underscore
                mappings:
                    ApplicationSonataUserBundle: ~
                    ApplicationSonataMediaBundle: ~
                    YourBundle: ~
    
    • 在 AppKernel.php 中检查 ApplicationSonataMediaBundle() 实例运行命令:

    • 运行应用程序/控制台原则:schema:update --force

    也看看这个问题:

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

    【讨论】:

      猜你喜欢
      • 2018-07-03
      • 2018-02-06
      • 2014-04-27
      • 2016-07-03
      • 1970-01-01
      • 2016-04-24
      • 2012-09-24
      • 2016-07-03
      • 2018-07-04
      相关资源
      最近更新 更多