【发布时间】:2015-02-15 12:28:51
【问题描述】:
我有几个带有相关表的模型,当我尝试删除记录时会抛出 yii\db\IntegrityException。
我如何才能在全局范围内捕获此异常,将用户重定向到错误页面,告诉他由于“相关数据存在”而无法删除此记录,并为他尝试执行的操作提供“返回”按钮删除记录?
【问题讨论】:
标签: sql exception-handling yii2
我有几个带有相关表的模型,当我尝试删除记录时会抛出 yii\db\IntegrityException。
我如何才能在全局范围内捕获此异常,将用户重定向到错误页面,告诉他由于“相关数据存在”而无法删除此记录,并为他尝试执行的操作提供“返回”按钮删除记录?
【问题讨论】:
标签: sql exception-handling yii2
感谢 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 ...
}
}
【讨论】: