保存方法在eloquent中不起作用

时间:2016-11-23 08:38:14

标签: laravel eloquent laravel-5.3

我尝试更新记录,因此使用save()方法,但记录无法在数据库中更新。

这是我的代码:

public function update(Request $request, $id)
    {
        $rules = [
            'email' => 'required|email',
            'firstname' => 'required',
            'lastname' => 'required'
        ];

        $validator = Validator::make($request->all(), $rules);

        if ($validator->fails()) {
            return redirect()->back()->withErrors($validator)->withInput();
        } else {
            $a = Users::find($id)->save($request->all());
        }

        return redirect()->to('admin/users/'.$id);
    }

有什么问题?

P.S:创建方法没有问题。

1 个答案:

答案 0 :(得分:2)

改为使用update()方法:

Users::where('id', $id)->update($request->except(['_method', '_token']));

或尝试使用fill()手动填充数据:

$a = Users::find($id)->fill($request->all())->save();

在这两种情况下,您都在使用mass assignment,因此请将您尝试更新的所有属性添加到$fillable数组中。