我想从表中删除一行。我在控制器中使用的功能是:
public function destroy($id) {
$category = Category::find($id);
$category->delete();
return redirect()->back();
}
但是它给我一个错误:
在 null 上调用成员函数 delete()
当我使用此代码时:
public function destroy($id) {
$category = Category::find($id);
dd($id);
}
它显示了正确的 id,即
“1”
当我使用
public function destroy($id) {
$category = Category::find($id);
dd($category); // or
dd(Category::find($id);
}
我得到输出
空值
屏幕上。
如评论中所述,您收到的错误可能是由于给定 ID 的数据库中不存在类别。
然后,当您尝试查找该 ID 的类别时:
$category = Category::find($id);
的值$category
变量是null
。因此,尝试在 上调用delete()
方法时会出错null
。在幕后,它与执行以下操作相同:
null->delete();
哪个,不起作用。
您可以$category
在尝试删除它之前检查它的值。或者,在您的情况下,您可以使用查询来删除与给定条件匹配的所有记录id = $id
。这条路:
public function destroy($id)
{
Category::where('id', $id)->delete();
return redirect('/')->back();
}
有关其工作原理的详细信息,请参阅Eloquent 文档中的按查询删除模型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句