搜索
系统检测到您的用户名不符合规范:

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

浏览:396 发布日期: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 获取不到错误信息

希望官方早日调整
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
ghj902260
积分:4986 等级:LV4
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /