laravel 更新编辑数据库记录 - 提交表单时出错

laravel updating editing database record - getting error when submitting the form

我正在使用此代码编辑数据库记录:

public function service_edit($id)
{
    $service = Service::find($id);
    return view('Super_Admin/service/.service_edit')->with('service', $service);
}

public function service_update(Request $request, $id)
{
    $service = Service::find($id);
    $input['title_name'] = strtoupper ($request['title_name']);
    $input['link'] = strtoupper ($request['link']);
    $input['note'] = strtoupper ($request['note']);
    $input['image'] = time().'.'.$request->

    image->getClientOriginalExtension();
    $folder1 = public_path('WEBSITE-FILE/SERVICE/1');
    $path1 = $folder1 . $input['image']; // path 1
    $request->image->move($folder1, $input['image']);
    $path2 = public_path('WEBSITE-FILE/SERVICE/2').$input['image'];// path 2
    $path3 = public_path('WEBSITE-FILE/SERVICE/3'). $input['image']; // path 3
    $path4 = public_path('WEBSITE-FILE/SERVICE/4'). $input['image']; // path 4

    \File::copy($path1, $path2);
    \File::copy($path1, $path3);
    \File::copy($path1, $path4);

    $service->save();

    return back()->with('success','UPDATED SUCCESSFULLY .');
}

我在提交表单时遇到此错误

"Call to a member function save() on array"

您将 $input 初始化为数组,然后调用 $input->save(),这就是引发错误的原因。

也许您想使用 $service 代替 $input

更改以下行并尝试

$input= Service::find($id);

$service是你必须保存的地方,而不是$input
必须将请求的值赋值给$service变量(Service Object),然后保存。
试试这样:

public function service_update(Request $request, $id)
{
    $service = Service::find($id);
    $service->title_name = strtoupper ($request->title_name);
    $service->link = strtoupper ($request->link);
    $service->note = strtoupper ($request->note);
    $service->image = time().'.'.$request->file('image')->getClientOriginalExtension();

    // ...

    $service->save();

    return back()->with('success','UPDATED SUCCESSFULLY .');
}