почему я не могу удалить объект изображения с помощью VichUploader? - PullRequest
0 голосов
/ 11 марта 2019

Я работаю с Symphony 4 и Doctrine И я использую vinchUploader для управления своими изображениями.

Я создаю изображение сущности, и когда я использую эту сущность для добавления новых изображений, она работает как чудо, но когда я хочу удалить ее с моим контроллером:

    public function delete(Image $image):Response
    {
        $em = $this->getDoctrine()->getEntityManager();
        $em->remove($image);
        $em->flush();

        return new RedirectResponse($this->generateUrl('image-index'));
    }

я получаю странноеошибка:

Expected argument of type "string", "NULL" given at property path "fileName".

с `имя файла в моем объекте Image таково:

     /** 
     * @Vich\UploadableField(mapping="picture", fileNameProperty="fileName")
     * @var File
     */
    private $imageFile;

    /**
     *
     * @ORM\Column(type="string", length=255, nullable=true)
     * @var string|null
     */
    private $fileName;

То же самое происходит при редактировании объекта.Вы видите что-нибудь, что я сделал не так?

Спасибо за помощь

1 Ответ

2 голосов
/ 22 марта 2019

Похоже, вы используете подсказку типа на вашем сеттере, что-то вроде

pubilc function setFileName(string $name): void
{
    $this->fileName = $name;
}

Вам нужно использовать менее строгий тип, такой как:

pubilc function setFileName(?string $name): void
{
    $this->fileName = $name;
}
...