Sonata admin bundle кастомизация CollectionType для загрузки фотографий
Пытаюсь добавить возможность добавления фотографий к Product при помощи CollectionType в SonataAdminBundle.
Кейс такой: администратор открывает страницу добавления Product, заполняет основные поля. Доходит до поля images, нажимает кнопку "добавить изображение" и вместо стандартного добавления полей collectionType должно появиться модальное окно с возможностью выбрать фото, обрезать(cropperjs) и отправить для сохранения на сервер. Сервер должен возвратить созданный связанный с Product объект Image который должен добавиться в основную форму Product.
Т.е. проблема пока одна, а именно есть ли в sonata admin возможность переопределить стандартное js поведение кнопки add формы collectionType(для возможности обрезать,загрузить фото и создать связанне с Product сущности Image)? Может есть альтернативный способ редактирования/загрузки фото в sonata admin нежели предложенный мной?
Немного кода:
/**
* @ORM\Entity
*/
class Product
{
// code ...
/**
* @var Image[]
* @ORM\ManyToMany(
* targetEntity="App\Entity\Domain\Media\Image"
* )
* @ORM\JoinTable(
* name="product_images",
* joinColumns={@ORM\JoinColumn(name="product_id",referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="image_id",referencedColumnName="id")}
* )
*/
private $images;
// code ...
}
связанные с Product фото:
/**
* @ORM\Entity
*/
class Image extends Media
{
// code ...
}
/**
* @ORM\Entity
* @ORM\InheritanceType("SINGLE_TABLE")
*/
abstract class Media
{
/**
* @var string
* @ORM\Column(type="string", nullable=false)
*/
private $path;
// code ...
}
Класс администратора Product:
class ProductAdmin extends AbstractAdmin
{
public function configureFormFields(FormMapper $form)
{
$form
// тут конфигурация полей Product
->add('images', CollectionType::class, [
'type_options' => [
'delete' => true,
]
])
}
}