【问题标题】:Save method not work in eloquent保存方法在 eloquent 中不起作用
【发布时间】:2016-11-23 08:38:14
【问题描述】:

我尝试更新记录,所以我使用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:创建方法没有问题。

【问题讨论】:

    标签: laravel eloquent laravel-5.3


    【解决方案1】:

    改用update() 方法:

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

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

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

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

    【讨论】:

    • 谢谢,save() 我收到了这个错误“Call to undefined method Illuminate\Database\Query\Builder::save()
    • @MajAfy 我忘记在代码中将save() 更改为update(),抱歉。解决了这个问题。
    • 谢谢,工作,但结果我收到此错误Unknown column '_method' in 'field list' 我将_method 添加到$guarded
    • @MajAfy 尝试这样做$request->except(['_method', '_token']) 而不是$request->all()
    • 谢谢,像魅力一样工作?,请您将您的评论添加到您的答案中吗?这样其他用户就会明白该怎么做
    猜你喜欢
    • 2018-04-10
    • 2015-01-02
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多