【问题标题】:Yii2: How to catch yii\db\IntegrityException globallyYii2:如何全局捕获 yii\db\IntegrityException
【发布时间】:2015-02-15 12:28:51
【问题描述】:

我有几个带有相关表的模型,当我尝试删除记录时会抛出 yii\db\IntegrityException。

我如何才能在全局范围内捕获此异常,将用户重定向到错误页面,告诉他由于“相关数据存在”而无法删除此记录,并为他尝试执行的操作提供“返回”按钮删除记录?

【问题讨论】:

    标签: sql exception-handling yii2


    【解决方案1】:

    感谢 Yii IRC 聊天的友好帮助,我想出了以下解决方案:

    创建自定义基本模式:

    class MyActiveRecord extends \yii\db\ActiveRecord
    {
        ...
    }
    

    这里我覆盖了原来的

    actionDelete($id)
    

    喜欢

    public function actionDelete($id)
    {
        try {
            ... try to delete the record ...
        } catch (db\IntegrityExceptyion $e) {
            ... send to error page ...
        }
    }
    

    【讨论】:

    • 我也遇到同样的问题,能不能详细点
    • 您需要哪些详细信息?
    • 我也面临同样的问题,我需要你用来解决这个问题的代码\
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-11
    • 2013-04-17
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    相关资源
    最近更新 更多