Yii2:如何全局捕获yii \ db \ IntegrityException

时间:2014-12-17 02:29:09

标签: sql exception-handling yii2

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

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

1 个答案:

答案 0 :(得分: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 ...
    }
}