为什么我不能使用 VichUploader 删除我的图像实体?
why cannot I delete my image entity using VichUploader?
我使用 Symfony 4 和 Doctrine 并且我使用 VichUploader 来管理我的图像。
我创建了一个实体图像,当我使用这个实体添加新图像时,它非常有效,但是当我想用我的控制器删除它时:
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".
在我的图像实体中使用`文件名:
/**
* @Vich\UploadableField(mapping="picture", fileNameProperty="fileName")
* @var File
*/
private $imageFile;
/**
*
* @ORM\Column(type="string", length=255, nullable=true)
* @var string|null
*/
private $fileName;
处理编辑实体时出现相同的行为。你看到我做错了什么吗?
您似乎在 setter 上使用类型提示,例如
pubilc function setFileName(string $name): void
{
$this->fileName = $name;
}
您需要使用不太严格的类型,例如:
pubilc function setFileName(?string $name): void
{
$this->fileName = $name;
}
我使用 Symfony 4 和 Doctrine 并且我使用 VichUploader 来管理我的图像。
我创建了一个实体图像,当我使用这个实体添加新图像时,它非常有效,但是当我想用我的控制器删除它时:
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".
在我的图像实体中使用`文件名:
/**
* @Vich\UploadableField(mapping="picture", fileNameProperty="fileName")
* @var File
*/
private $imageFile;
/**
*
* @ORM\Column(type="string", length=255, nullable=true)
* @var string|null
*/
private $fileName;
处理编辑实体时出现相同的行为。你看到我做错了什么吗?
您似乎在 setter 上使用类型提示,例如
pubilc function setFileName(string $name): void
{
$this->fileName = $name;
}
您需要使用不太严格的类型,例如:
pubilc function setFileName(?string $name): void
{
$this->fileName = $name;
}