Laravel 5.2更新文件系统

时间:2018-05-07 09:54:21

标签: laravel laravel-5 laravel-5.2

我想使用下面的源代码更新文档

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错误: 方法更新不存在。 为什么会这样?写我的代码有什么问题?谢谢

1 个答案:

答案 0 :(得分:0)

您无法批量更新这样的值,并且当您从请求获取文件时,您的变量$document也会被覆盖。 像这样称呼它,

Document::where('id',$id)->update($data);

希望它有所帮助。