我与数据库中category_id列有外部关系,但在删除时出现错误。 这是我的删除代码:
public function destroy($id)
{
$category = Category::find($id);
$category->delete();
Session::flash('success', 'The category was successfully deleted.');
return redirect()->route('categories.index');
}
我看到的错误是:
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`fitilicious`.`products`, CONSTRAINT `products_category_id_foreign` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`)) (SQL: delete from `categories` where `id` = 2)
请帮忙。
我的赌注是将外键设置为"删除限制"而不是级联。
无法删除或更新父行:外键约束失败 (
fitilicious
。products
, 约束products_category_id_foreign
外键 (category_id
) 引用categories
(id
)) (SQL: 从categories
中删除,其中id
= 2)
这告诉我们"产品"表中有一行引用您尝试删除的类别。
- 在删除级联时,也会删除该产品。 删除
- 限制将阻止删除非空类别
- 在删除时,将删除类别,并在产品表中将category_id设置为 NULL 。
每个都有其用途,但您需要选择所需的一种。