Используя SonataMediaBundle, как я могу узнать, какие медиа-провайдеры доступны? - PullRequest
0 голосов
/ 23 января 2020

Я надеюсь создать изображение прибора в CMS на основе сонаты, которая использует Symfony 4.3.9. У меня есть следующие логи c в 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 () в вашем объекте Media?

Поэтому я предполагаю, что должен вызвать что-то вроде $defaultImage->setProviderName('MyProviderName'); ... но я не знаю, где бы я мог go, чтобы найти список жизнеспособных имен поставщиков. Я попытался посмотреть в моем .env файле и не нашел ничего очевидного.

1 Ответ

0 голосов
/ 23 января 2020

Я нашел это.

Просто попробовав значение - любое значение - внутри setProviderName() и снова запустив генерацию прибора, я получаю более полезное сообщение:

Невозможно получить поставщика с именем "изображение". Доступными поставщиками являются "sonata.media.provider.image", "sonata.media.provider.f ile", "sonata.media.provider.youtube", "sonata.media.provider.dailymotion", "sonata.media.provider .vimeo ".

Так что это решает мою проблему.

...