beego orm 操作返回友好提示信息

beego orm 操作返回友好提示信息

在使用beego orm进行insert的时候默认是返回error,但是这个error就是数据库直接返回的错误(就像我们直接在命令行操作数据库返回的信息是一样的)类似下面图2

bee命令自动生成的添加数据函数

// AddFaBroker insert a new FaBroker into database and returns
// last inserted Id on success.
func AddFaBroker(m *FaBroker) (id int64, err error) {
	o := orm.NewOrm()
	id, err = o.Insert(m)
	return
}

调用添加函数后返回的err.Error()数据

"Error 1062: Duplicate entry '153' for key 'phone'"

这样的信息不能直接返回到客户端,需要我们自己处理一下,但是beego orm 的error不像gorm一样,错误有类似ErrRecordNotFound这样的方法可以进行判断,只能自己进行判断;

下面是创建的函数,主要是通过返回的错误代码进行判断;

//数据库错误友好提示
func FriendlySqlErr(e error, field string) (err error) {
	if strings.Index(e.Error(), "Error 1062") > -1 {
		err = errors.New(field + "重复,请更换" + field + "后重试")
	}
	//。。。其他错误
	return
}

调用

func (this *BrokerService) Register(tmp models.FaBroker) (broker *models.FaBroker, err error) {
	if _, err := models.AddFaBroker(&tmp); err != nil {
		return nil, utils.FriendlySqlErr(err,"手机号")//这里调用返回友好信息提示
	}
	broker = &tmp
	return broker, err
}

返回err.Error()

"手机号重复,请更换手机号后重试"

初学golang,文中如有不足之处请提出,我会尽快修改

上一篇:beego源码解析之配置文件


下一篇:golang用户认证