php - 使用 SonataMediaBundle,我如何找出可用的媒体提供商?
问题描述
我希望在使用 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
文件,没有发现任何明显的东西。
解决方案
我找到了。
只需在内部尝试一个值 -任何值 -setProviderName()
并再次运行夹具生成,我就会得到这个更有用的消息:
无法检索名为“image”的提供程序。可用的提供程序是“sonata.media.provider.image”、“sonata.media.provider.file”、“sonata.media.provider.youtube”、“sonata.media.provider.dailymotion”、“sonata.media.provider” .vimeo”。
这样就解决了我的问题。
推荐阅读
- vuejs2 - Vuetify 有条件的深色主题
- django - django modelviewset 响应添加其他信息,当我请求发布时不想调用 create()
- c# - WPF IsMouseOver 和单击时背景更改
- python - 如何将此递归更改为循环
- http - 我的网站无法运行,无法启动 Plone。bin/instance fg 不起作用
- android - 内部使用库(Artifactory)中的Android第三方依赖项
- php - php 发送/回显 '?' 对于每个 require_once
- c# - 如何在可以将其他用户控件置于前面之前显示消息对话框
- javascript - 从 API 获取图像
- django - Django 单元测试:应该如何测试抽象模型?