Symfony 4 VichUploader:无法从数据库中删除文件

时间:2019-05-16 23:00:26

标签: symfony

我在应用程序中使用VichUploader上传图像,它运行正常,但是当我尝试删除图像时,文件是从磁盘中删除的,而不是从数据库中删除的,它显示此错误:

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

图像对象转储是这样的:

Image {#462 ▼
  -id: 20
  -file: null
  -name: "RehrlwnDcd.jpg"
  -updatedAt: DateTime @1557958944 {#460 ▶}
  -tags: PersistentCollection {#495 ▶}
}

和vich配置是:

inject_on_load: false
delete_on_update: true
delete_on_remove: true

当我将delete_on_remove设置为false时,该图像将从数据库中删除,但仍在磁盘中

1 个答案:

答案 0 :(得分:1)

检查您的实体,我认为您的代码中有这样的代码。


    /**
     * @var string
     */
    private $name;

    /**
     * @return string
     */
    public function getName(): string
    {
        return $this->name;
    }

    /**
     * @param string $name
     */
    public function setName(string $name): void
    {
        $this->name = $name;
    }

,如果是真的,您可以更改

getName(): string to getName(): ?string
and setName(string $name) to setName($name)

如果没有收到提示,请显示所有错误消息:)