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 获取不到错误信息
希望官方早日调整
最佳答案
