我已经像描述的这里那样启用了pixlr,但是没有启用,尝试了很多次。没有编辑与pixlr按钮可见的媒体形式。
我是不是错过了什么,挣扎了很长一段时间。请帮助,除了这个还有其他配置吗?
这里是我的配置
sonata_media:
pixlr:
enabled: true
secret: theSecretHash
referrer: Demo
# if you don't use default namespace configuration
class:
media: App\Application\Sonata\MediaBundle\Entity\Media
gallery: App\Application\Sonata\MediaBundle\Entity\Gallery
gallery_has_media: App\Application\Sonata\MediaBundle\Entity\GalleryHasMedia
category: App\Application\Sonata\ClassificationBundle\Entity\Category
db_driver: doctrine_orm # or doctrine_mongodb, doctrine_phpcr it is mandatory to choose one here
default_context: default # you need to set a context
contexts:
default: # the default context is mandatory
providers:
- sonata.media.provider.dailymotion
- sonata.media.provider.youtube
- sonata.media.provider.image
- sonata.media.provider.file
- sonata.media.provider.vimeo
formats:
small: { width: 100 , quality: 70 }
big: { width: 500 , quality: 70 }
gallery:
providers:
- sonata.media.provider.dailymotion
- sonata.media.provider.youtube
- sonata.media.provider.image
- sonata.media.provider.file
- sonata.media.provider.vimeo
formats:
original: { width: 500, quality: 100 }
thumbnail: { width: 200, height: 200, quality: 100 }
cdn:
server:
path: http://127.0.0.1:8000/uploads/media # http://media.sonata-project.org/
filesystem:
local:
directory: "%kernel.root_dir%/../public/uploads/media" #flex
#directory: "%kernel.root_dir%/../web/uploads/media" #non-flex
create: false发布于 2018-06-21 18:28:42
在深入研究代码之后,我发现问题在于Symfony 4默认将服务私有化。
这就是奏鸣曲媒体包支持pixlr的方式。
首先,它检查容器中是否可用sonata.media.extra.pixlr服务。如果没有,则不能启用pixlr。因为服务是私有的,所以容器无法访问服务。
// Sonata\MediaBundle\Twig\GlobalVariable
/**
* @return Pixlr|bool
*/
public function getPixlr()
{
return $this->container->has('sonata.media.extra.pixlr') ? $this->container->get('sonata.media.extra.pixlr') : false;
}解决这一问题的方法是覆盖服务定义并使其公开:)
sonata.media.extra.pixlr:
public: true
class: Sonata\MediaBundle\Extra\Pixlr
arguments: [~,~,"@sonata.media.pool", "@sonata.media.manager.media", "@router", "@sonata.templating", "@service_container"]现在您可以看到以媒体形式启用的pixlr编辑按钮。
https://stackoverflow.com/questions/50974612
复制相似问题