当我尝试使用此代码更新模型时:
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');
}
代码执行时没有任何错误。
让我感到困惑的是,如果我在调用return $mix;
方法的行之前执行update
之类的操作,我会获得两种方法的类似数据。
答案 0 :(得分:0)
正如shock_gone_wild在我的问题的评论部分中建议$mix = Mix::where('slug', $slug)->get();
返回集合而不是模型。这是因为Model::where()
方法可以返回零个,一个或多个记录,具体取决于是否有符合设置条件的记录。
根据建议,我使用$mix = Mix::where('slug', $slug)->first();
来获取符合条件的第一条记录。