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

时间:2019-05-31 02:55:49

标签: laravel laravel-5.8

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

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 .');
}

我提交表单时遇到此错误

  

“在数组上调用成员函数save()”

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

$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 .');
}

答案 2 :(得分:0)

更改以下行并尝试

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