我知道我可以在迁移中限制删除外键数据。例子

$table->foreign('category_id')->references('id')->on('categories')->onDelete('restrict')->onUpdate('cascade');

如果外键中存在子项,尝试删除带有eloquent的类别将导致mysql错误。

我如何以 Eloquent 方式捕获此错误并将其呈现给用户

最佳答案

我终于想出了这个

try {
     $category->delete();
    }
catch (\Illuminate\Database\QueryException $e) {

        if($e->getCode() == "23000"){ //23000 is sql code for integrity constraint violation
            // return error to user here
        }
    }

关于mysql - Eloquent - 如果外键有行,则防止删除数据 - Laravel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35148816/

10-14 13:49