У меня есть 2 таблицы:
product: id, name
image: id, product_id, path
Когда я нажимаю «Изменить» изображение и нажимаю «Обновить», все поля «изображения» обновляются успешно, кроме «пути»
Когда я нажимаю «Добавить новое изображение» и нажимаю «Создать», возникает ошибка: не удалось создать объект: App \ Entity \ Image
Я знаю, что это ошибка загрузки файла, но я не знаю, как это исправить. Вот мой код:
services.yaml
parameters:
app.path.product_images: /uploads/product'
vich_uploader.yaml
vich_uploader:
db_driver: orm
mappings:
product_images:
uri_prefix: '%app.path.product_images%'
upload_destination: '%kernel.project_dir%/public%app.path.product_images%'
Изображение Entity
<?php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass="App\Repository\ImageRepository")
*/
class Image
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @var string $path
*/
private $path;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Product", inversedBy="images")
*/
private $product;
/**
* @Vich\UploadableField(mapping="image", fileNameProperty="path")
* @var File $imageFile
*/
private $imageFile;
/**
* @return File
*/
public function getImageFile()
{
return $this->imageFile;
}
/**
* @param File
*/
public function setImageFile(File $path = null)
{
$this->imageFile = $path;
}
public function __toString()
{
return (string) $this->getName();
}
public function getId(): ?int
{
return $this->id;
}
public function getPath(): ?string
{
return $this->path;
}
public function setPath(string $path): self
{
$this->path = $path;
return $this;
}
}
ImageAdmin.php
protected function configureFormFields(FormMapper $formMapper): void
{
$formMapper
->add('id')
->add('imageFile',FileType::class,[
'label' => 'Image file'
])
->add('product', ModelType::class,[
'label'=>'Product name'
])
;
}