VichUploaderBundle не работает при попытке обновить сущность - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь обновить объект, изменив его изображение, но фотография просто исчезает.БД изменилось правильно, и даже был вызван метод setImageFile, но сам файл не появился.

Моя сущность

use Symfony\Component\HttpFoundation\File\File;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Vich\UploaderBundle\Mapping\Annotation as Vich;

/**
* @ORM\Entity(repositoryClass="App\Repository\CategoryRepository")
* @Vich\Uploadable
*/
class Category
{

    /**
     * @Vich\UploadableField(mapping="categories", fileNameProperty="image")
     */
    private $imageFile;

    /**
     * @ORM\Column(type="string", length=255)
     */
    private $image;

    /**
     * @ORM\Column(type="datetime")
     * @ORM\Version
     */
    private $updationDate;

    public function getImage(): ?string
    {
        return $this->image;
    }

    public function setImage(string $image): self
    {
        $this->image = $image;

        return $this;
    }

    public function getUpdationDate(): ?\DateTimeInterface
    {
        return $this->updationDate;
    }

    public function setUpdationDate(\DateTimeInterface $updationDate): self
    {
        $this->updationDate = $updationDate;

        return $this;
    }


    public function setImageFile($image): void
    {
        $this->imageFile = $image;

        if ($image instanceof UploadedFile) {
            $this->setUpdationDate(new DateTime());
        }
    }

    public function getImageFile(): ?File
    {
        return $this->imageFile;
    }
}

Моя конфигурация

vich_uploader:
db_driver: orm

mappings:
    categories:
        uri_prefix: /images/categories
        upload_destination: '%kernel.project_dir%/public/images/categories'
        namer: Vich\UploaderBundle\Naming\UniqidNamer

        inject_on_load: true
        delete_on_update: true
        delete_on_remove: true

Я искал информацию впредыдущий пост stackoverflow, но все решения не работали для меня.Я использую Symfony 4.1, если это помогает

1 Ответ

0 голосов
/ 13 сентября 2018

Ваш файл загружен в %kernel.project_dir%/public/images/categories?

Вы пытались установить delete_on_update в false?

...