我想使用下面的源代码更新文档
public function update(Request $request, $id)
{
$this->validate($request, [
'name' => 'required',
]);
$document = Document::find($id);
$data = $request->all();
if ($request->hasFile('document')) {
$exist = Storage::disk('document')->exists($document->document);
if (isset($document->document) && $exist) {
$delete = Storage::disk('document')->delete($document->document);
}
$document = $request->file('document');
$ext = $document->getClientOriginalExtension();
if ($request->file('document')->isValid()) {
$documentName = date('YmdHis') . ".$ext";
$path = 'docs';
$request->file('document')->move($path, $documentName);
$data['document'] = $documentName;
}
}
$document->update($data);
Session::flash('flash_notification', 'Success updated.');
return redirect('documents');
}
但是当我单击更新按钮时,源代码在Macroable.php第74行中出现BadMethodCallException错误: 方法更新不存在。 为什么会这样?写我的代码有什么问题?谢谢
答案 0 :(得分:0)
您无法批量更新这样的值,并且当您从请求获取文件时,您的变量$document
也会被覆盖。
像这样称呼它,
Document::where('id',$id)->update($data);
希望它有所帮助。