Здравствуйте! Есть сущность Image, которая должна хранить 2 изображения (оригинал + миниатюра):
/**
* @ORM\Entity
* @Vich\Uploadable
*/
class Image
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
// ..... other fields
/**
*
* @Vich\UploadableField(mapping="product_image", fileNameProperty="imageName")
*
* @var File
*/
private $imageFile;
При добавлении изображения нужно:
1) Прикрепить загруженное изображение к сущности
2) Преобразовать загруженное изображение в jpg
3) Сделать миниатюру
Если просто добавлять файл - то все более-менее понятно:
/**
* @Rest\View()
*/
public function postAction(Request $request)
{
/**
* @var UploadedFile $uploadedFile
*/
$uploadedFile = $request->files->get('some_file');
$image = new Image();
$image->setImageFile($uploadedFile);
$isValid = $this->get('validator')->validate($image);
if($isValid->count() !== 0)
throw new BadRequestHttpException('Bad file');
$om = $this->getDoctrine()->getManager();
$om->persist($image);
$om->flush();
}