Laravel: BadMethodCallException with message 'Method update does not exist.'



当我尝试使用此代码更新模型时:

public function updateMixedtape($slug, Request $request)
{
    $mix = Mix::where('slug', $slug)->get();
    $mix->update($request->all());
    return redirect('dashboard/mixes');
}

我发现方法update不存在错误。但是,如果我修改了我的视图以发送radio_show_id而不是slug,然后尝试将代码更改为这样的内容:

public function updateMixedtape(Request $request)
{
    $mix = Mix::findOrFail($request->radio_show_id);
    $mix->update($request->all());
    return redirect('dashboard/mixes');
}

代码执行没有任何错误。

让我感到困惑的是,如果我在调用update方法的行之前执行类似return $mix;的操作,我会获得这两种方法的类似数据。

正如我的问题的评论部分$mix = Mix::where('slug', $slug)->get();的评论部分所建议的是返回集合而不是模型。这是因为Model::where()方法可以返回零,一个或多个记录,具体取决于是否有符合设定条件的记录。

所建议的,我使用$mix = Mix::where('slug', $slug)->first();而不是获得符合条件的第一个记录。

最新更新