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
属性 可以是实例对象 UploadedFile
或 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
属性 可以是实例对象 UploadedFile
或 UploadedFile
对象数组或空值,当您提交表格。