1) Использую VichUploaderBundle для загрузки файлов
2) Сделал два поля, одно которое хранит название и второе локатор файла
/**
* @ORM\Column(type="string", length=255)
*/
private $articleImage;
/**
* NOTE: This is not a mapped field of entity metadata, just a simple property.
*
* @Vich\UploadableField(mapping="article_image", fileNameProperty="articleImage", size="imageSize", mimeType="image.mimeType")
*
* @var File
*/
private $imageFile;
3) Сделал вот такую форму:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('articleTitle')
->add('articleBody')
->add('thumbNumber')
->add('seoDescription')
->add('imageFile', VichImageType::class, [
'required' => false,
'allow_delete' => true,
'download_label' => '...',
'download_uri' => true,
'image_uri' => true,
])
->add('save', SubmitType::class, array('label' => 'Создать статью'))
;
}
4) И вот так пробую сохранить:
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$article = $form->getData();
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($article);
$entityManager->flush();
return $this->redirectToRoute("gate");
}
В итоге, идет ошибка
Neither the property "image" nor one of the methods "getImage()", "image()", "isImage()", "hasImage()", "__get()" exist and have public access in class "App\Entity\Article".
Хотя у меня нет поля image, и я не пойму, откуда оно взялось.