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

本文介绍了如何在Golang中使用Beego ORM进行数据插入时,处理数据库返回的错误信息。由于Beego ORM的错误信息直接来源于数据库,不适合直接展示给用户,因此需要自定义函数进行错误码判断,转换为友好的提示信息。示例中展示了如何针对"Error1062"(如:手机号重复)进行处理,生成更符合用户体验的错误提示。此外,还讨论了与Gorm库错误处理的差异。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值