Eloquent - 防止在外键有行时删除数据 - Laravel

时间:2016-02-02 08:53:40

标签: mysql laravel eloquent foreign-keys

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

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

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

如何在eloquent中捕获此错误并将其呈现给用户

1 个答案:

答案 0 :(得分:1)

我终于想出了这个

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
        }
    }