关于 在使用模型进行删除时 事务出现的BUG

浏览:289 发布日期:2018/03/14 分类:ThinkPHP5专区 关键字: BUG 事务 删除 模型
这是我的模型中的事务        User::beforeDelete ( function ($_Data) {
            if ($_Data ['id'] == '00000002-0000-0000-0000-000000000000') {
                // $_Data->error = '超级管理员禁止删除';
                $_Data->error = '删除错误';
                return false;
            }
        } );
这是我的控制器中的代码public function del() {
        // 实例化请求类
        $Request = request ();
        // 判断请求类型
        if ($Request->isPost ()) {
            // 获取参数
            $_ID = input ( 'id', '' );
            // 验证参数
            if ($_ID == '') {
                // 参数异常 返回错误信息
                return _Code ( '101', '参数错误' );
            }
            // 拆分字符串 因为前台可能会删除多条数据
            $_ID = explode ( ',', $_ID );
            // 实例化模型
            $_Model = model ( 'app\common\model\User' );
            // 删除数据
            $_Res = $_Model->destroy ( $_ID );
            // $_Res = $_Model->delete ( $_ID );
            // 判断执行结果
            if ($_Res) {
                // 返回成功
                return _Code ( '200', '成功' );
            } else {
                $_Err = $_Model->getError();
                // 返回失败
                return _Code ( '201', $_Err?$_Err:'失败' );
            }
        }
    }
在使用模型删除时 设置了error的变量
使用destroy方法删除 删除失败后不返回异常信息
更改为delete 方法删除 获取到异常信息

经过查看think/Model; 中的destroy方法 发现

方法中 $model = new static();
重新实例化来一个类来进行操作
错误信息返回到这个类中了
所以在控制器中使用getError 获取不到错误信息

希望官方早日调整
最佳答案
评论( 相关
后面还有条评论,点击查看>>