#はじめに
Symfonyのファイルのアップロードに、VichUploaderBundleを使っています。
Api Platformを使っていて、ファイルのアップロードは、ドキュメント通りに行って問題なし。
問題
Entityの削除(DELETE)を発行したら、以下のようによくあるエラーがでる。
"Expected argument of type "string", "null" given at property path "originalFileName"."
原因
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;
}
無事に削除ができるようになりました。
まとめ
NULL許容で実装した方が、他のバンドルとも連携があるのでよいのですね。
make:entityで作ったままがよいのかも?