Symfony 多个带有 UploadedFile 的可选文件

Symfony multiple optional files with UploadedFile

我发现一个非常好的 article 可以将多个文件上传添加到我的项目,但是我正在尝试使文件上传成为可选的。

如果我编辑我的文档,如果我不包含文件,它将失败并出现以下错误。

不确定什么是解决此问题的好方法。非常感谢任何建议。

错误:

Catchable Fatal Error: Argument 1 passed to AppBundle\Entity\Cause::setFiles() must be an instance of Symfony\Component\HttpFoundation\File\UploadedFile, null given, called in

这是我的原因文档

的上传方法
/**
 * @ORM\PreFlush()
 */
public function upload()
{

    foreach($this->uploadedFiles as $uploadedFile)
    {
        $file = new Imagefile();

        $filename = sha1(uniqid(mt_rand(), true)).'.'.$uploadedFile->guessExtension();
        $url1 = $this->getUploadDir();
        $path = "/".$url1."/".$filename;

        $file->setPath($path);
        $file->setSize($uploadedFile->getClientSize());
        $file->setName($uploadedFile->getClientOriginalName());

        $uploadedFile->move($this->getUploadDir(), $path);

        $this->getFiles()->add($file);
        $file->setCause($this);


        unset($uploadedFile);
    }
}


-- Setter --

    /**
     * Add files
     * @param UploadedFile $files
     */
    public function setFiles(uploadedFile $files)
    {

        $this->uploadedFiles[] = $files;        
        return $this;
    }

将您的 setFiles 方法更改为:

public function setFiles($files = null) 

因为 Cause 实体中的 $files 属性 可以是实例对象 UploadedFileUploadedFile 对象数组或空值,当您提交表格。