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



我希望在基于Sonata的CMS中创建一个夹具图像,该CMS使用Symfony 4.3.9。我在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时,我得到以下输出:

提供商名称不能为空,您是否忘记调用 setProviderName(( 在你的媒体对象中?

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

我找到了。

只需在setProviderName()内尝试一个值(任何值(并再次运行夹具生成,我就会得到以下更有用的消息:

无法检索名为"image"的提供程序。可用的提供程序 是 "sonata.media.provider.image", "sonata.media.provider.f ile", "sonata.media.provider.youtube", "sonata.media.provider.dailymotion", "sonata.media.provider.vimeo"。

这样就解决了我的问题。

相关内容

  • 没有找到相关文章

最新更新