【发布时间】:2021-11-04 23:43:15
【问题描述】:
我能够将数组中的多个文件存储并保存到数据库中,以及更新表单数据。但是,现在的问题是,当我更新表单而不更新file 时,它会返回此错误。
count():参数必须是数组或者实现了Countable的对象
有谁知道我应该为我的刀片文件中的update 函数或value 做些什么,这样它就不会删除file 元素?
---------------------------------------------- 已更新 -------------------------------------------- -
public function update(Request $request, $id)
{
$data = $request->all();
$data = $this->saveEmptyData($data);
$c = Document::find($id);
$fileData = [];
if(count($request->file)>0)
{
foreach($request->file as $file)
{
$path = public_path('storage/documents');
$fileName = time().'_'.$file->getClientOriginalName();
$file->move($path, $fileName);
if ($c->file)
{
File::delete($path.'/'.json_decode($c->file)[0]);
}
$fileData[] = $fileName;
}
$doc = json_encode($fileData);
$c->file = $doc;
$c->name = $request->name;
$c->price = $request->price;
$c->publish = $request->publish;
}
//else {
// redirect()->back()->with('errors', 'File is required!');
//}
$c->save();
return redirect()->route('product.index')->with('success', 'Document updated successfully');
}
刀片
<form method="POST" action="{{ route('document.update', $doc) }}" enctype="multipart/form-data">
<fieldset>
....
<div class="form-group">
<label>Document</label>
<div class="input-group-append">
<label for="upload_file">Upload</label>
<input id="upload_file" type="file" name="file[]" value="{{ isset($doc) ? $doc['file'] : '' }}" multiple>
</div>
</div>
</fieldset>
</form>
【问题讨论】:
标签: arrays laravel file upload