1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VichUploaderBundleを適用するEntityのプロパティはNULLを許容しないと削除ができない

Posted at

#はじめに

Symfonyのファイルのアップロードに、VichUploaderBundleを使っています。

Api Platformを使っていて、ファイルのアップロードは、ドキュメント通りに行って問題なし。

問題

Entityの削除(DELETE)を発行したら、以下のようによくあるエラーがでる。

"Expected argument of type "string", "null" given at property path "originalFileName"."

image.png

原因

Entityを作成した時は、たいがいデフォルト値を設定してしまうのですが、setOriginalFileNameメソッドを呼び出す時に、引数指定されたのが問題でした。

    /**
     * @ORM\Column(type="string", length=255, options={"default": ""})
     */
    private $originalFileName = '';

    public function getOriginalFileName(): ?string
    {
        return $this->originalFileName;
    }

    public function setOriginalFileName(string $originalFileName = ''): self
    {
        $this->originalFileName = $originalFileName;

        return $this;
    }

以下のように、nullを許容する「?」をstringの前につけて解決。

 public function setOriginalFileName(?string $originalFileName = ''): self
    {
        $this->originalFileName = $originalFileName;

        return $this;
    }

無事に削除ができるようになりました。

image.png

まとめ

NULL許容で実装した方が、他のバンドルとも連携があるのでよいのですね。
make:entityで作ったままがよいのかも?

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?