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

У меня есть мультисайт, использующий пакет prodigious/symfony-multisite-bundle, и у каждого сайта есть своя папка для загрузки изображений через сонаты. Загружая изображение через интерфейс администратора, сохраняйте изображения в нужной папке.

filesystem:
    local:
        directory:  "%kernel.root_dir%/../web/uploads/%kernel.name%/media" #non-flex
        create:     true

При программной загрузке изображений они сохраняются в неправильной и той же папке, uploads/app/media.

Но в бэк-офисе URL для доступа к изображениям различаются uploads/app_distributor/media. На самом деле они указывают на папку, в которой должны быть сохранены изображения.

Как изменить путь к папке до сохранения изображения с помощью сонаты.

Ниже мой код для сохранения изображений программно:

file_put_contents($imgPath, file_get_contents($image));

$mediaManager = $this->container->get("sonata.media.manager.media");
$media = new Media();

$media->setBinaryContent($imgPath);
$media->setContext('vehicleAd');
$media->setProviderName('sonata.media.provider.image');
$media->setDistributor($vehicleO['distributor']);

$mediaManager->save($media);

// dump($media);die;

$vehicleAdGallery = new VehicleAdGallery();
if ($key < 6) { // Only 6 images allowed
    $vehicleAdGallery->setVehicleAd($vehicleAd);
    $vehicleAdGallery->setImage($media);

    if ($key == 0) {
        $vehicleAdGallery->setIsMainImage(1);
    }

    $vehicleAd->addVehicleAdGallery($vehicleAdGallery);
}
...