Я использую VichUploader в конфигурации EasyAdmin (на самом деле это EasyAdminPlus, который немного отличается). Я прочитал всю документацию, связанную с VichUploader, и посмотрел некоторые учебники на YouTube, но не могу найти, где моя ошибка.
Когда я загружаю изображение, имя сохраняется как tmp / ... в базе данных, но в загружаемом мной файле ничего не появляется.
Может ли кто-нибудь с рысью глазом сказать мне, где моя ошибка? Спасибо!
vichuploader.yaml:
parameters:
app.path.book_pictures: /uploads/images/books
vich_uploader:
db_driver: orm
mappings:
book_pictures:
uri_prefix: '%app.path.book_pictures%'
upload_destination: '%kernel.project_dir%/public/uploads/images/books'
namer: Vich\UploaderBundle\Naming\UniqidNamer
Часть сущности Book: (обратите внимание, что у меня нет атрибута updated_at, потому что я использую «History».
use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @ORM\Entity(repositoryClass="App\Repository\BookRepository")
* @Vich\Uploadable
*/
class Book
{
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @Gedmo\Versioned
*/
private $picture;
/**
* @Vich\UploadableField(mapping="book_pictures", fileNameProperty="picture")
* @var File
*/
private $pictureFile;
/**
* @return mixed
*/
public function getPictureFile()
{
return $this->pictureFile;
}
/**
* @param File|null $pictureFile
* @throws \Exception
*/
public function setPictureFile(File $pictureFile = null)
{
$this->pictureFile = $pictureFile;
if ($this->pictureFile instanceof UploadedFile) {
$this->updatedAt = new \DateTime('now');
}
}
public function getPicture(): ?string
{
return $this->picture;
}
public function setPicture(?string $picture): self
{
$this->picture = $picture;
return $this;
}
Часть моего Book.yaml (EasyAdminPlus): (здесь я использую «type: file», потому что по непонятной мне причине «type: vich_image» не работает ...)
new:
title: title.book.new
actions: []
fields:
- { property: title, label: field.title }
- { property: author, label: field.author, type: easyadmin_autocomplete }
- { property: edition, label: field.edition }
- { property: publicationYear, label: field.publicationYear }
- { property: summary, label: field.summary }
- { property: picture, type: file, label: field.picture }
Заранее спасибо за помощь!