VichUploaderBundle을 적용하는 Entity 속성은 NULL을 허용하지 않으면 삭제할 수 없습니다.

소개



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로 만든 채로 좋을지도?

참고문헌


  • h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 55764217 / HO W-TO-F-X-E-R-U-T-T-G-와 - ぇ
  • h tps // 아피-p t후 rm. 코 m / 드 cs / 아 d 민 / 후 우 p p 아 d / # 은 d d g g 후 우 p p a d
  • 좋은 웹페이지 즐겨찾기