首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eloquent -如果外键有行,则防止删除数据- Laravel

问Eloquent -如果外键有行,则防止删除数据- Laravel
EN

Stack Overflow用户
提问于 2016-02-02 16:53:40
回答 1查看 3.5K关注 0票数 4

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

代码语言:javascript
复制
$table->foreign('category_id')->references('id')->on('categories')->onDelete('restrict')->onUpdate('cascade');

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

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

EN

回答 1

Stack Overflow用户

发布于 2016-02-03 20:12:27

我终于想出了这个

代码语言:javascript
复制
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
        }
    }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35148816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档