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,文中如有不足之处请提出,我会尽快修改