У меня есть мультисайт, использующий пакет 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);
}