使用 SonataMediaBundle,我如何找出可用的媒体提供商?

Posted

技术标签:

【中文标题】使用 SonataMediaBundle,我如何找出可用的媒体提供商?【英文标题】:Using SonataMediaBundle, how can I find out which media providers are available? 【发布时间】:2020-05-09 10:47:01 【问题描述】:

我希望在使用 Symfony 4.3.9 的基于 Sonata 的 CMS 中创建夹具图像。我在AddMediaFixtures.php 中有以下逻辑:

public function load(ObjectManager $manager)

    $defaultImage = new Media();
    $fileLocation = $this->parameterBag->get('kernel.project_dir') . '/public/static/img/fallbacks/1600_828.jpg';

    $defaultImage->setBinaryContent(file_get_contents($fileLocation));
    $defaultImage->setName('fallback.jpg');

    $this->objectManager->persist($defaultImage);
    $this->objectManager->flush();

...当我运行doctrine:fixtures:load 时,我得到以下输出:

提供者名称不能为空,是否忘记调用 您的 Media 对象中的 setProviderName() 吗?

所以我想我应该打电话给$defaultImage->setProviderName('MyProviderName'); 之类的东西......但我不知道我会去哪里找到可行的提供者名称列表。我试过查看我的.env 文件,但没有发现任何明显的东西。

【问题讨论】:

【参考方案1】:

我找到了。

只需在 setProviderName() 中尝试一个值 -- any 值并再次运行固定装置生成,我就会得到这个更有用的消息:

无法检索名为“image”的提供程序。可用的供应商 是“sonata.media.provider.image”、“sonata.media.provider.file”、 "sonata.media.provider.youtube", "sonata.media.provider.dailymotion", “奏鸣曲.media.provider.vimeo”。

这样就解决了我的问题。

【讨论】:

以上是关于使用 SonataMediaBundle,我如何找出可用的媒体提供商?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SonataMediaBundle 在树枝中获取图像路径?

SonataMediaBundle - 如何上传图片?

使用 SonataMediaBundle,我如何找出可用的媒体提供商?

如何将 SonataMediaBundle 画廊限制为单个提供商?

如何从SonataMediaBundle的图库中获取图像网址,以便与FOSRestBundle一起使用?

使用 SonataMediaBundle 上传到 AmazonS3