修改密码功能不能使用
Opened this issue · 2 comments
刚开始学习go 使用这个项目的时候 发现修改密码功能一直操作不成功,
调试代码发现无法解决以下问题
- 对比过实体和数据库结构 均一致
- 代码调试看不到问题出在哪
2021-03-12 17:53:43.758 [ERRO] Password error sql: expected 27 arguments, got 28, UPDATE
sys_userSET
status=10,
tel='123',
back_site_id=5,
real_name='系统管理员',
depart_id=10001,
address='',
uuid='94091b1fa6ac4a27a06c0b92155aea6a',
endtime='',
user_type=1,
remark='时间是最好的老师,但遗憾的是——最后他把所有的学生都弄死了',
enable=1,
update_time='2021-03-12 17:53:40',
create_time='2017-03-19 20:41:25',
create_id=1,
id=1,
password='ef694f728a44575bedc8ee7caa2d5c48',
thirdid='',
email='zcool321@sina.com',
title_url='',
theme='flat',
create_site_id=1,
project_id=1,
username='admin',
salt='1111',
project_name='test',
update_id=1 WHERE
id` IN (1)
Stack:
- gmanager/app/api/user.(*Action).Password
XXXXXXX/src/gmanager/app/api/user/userAction.go:210`
问题已经定位到
在user_entity.go文件中
func (r *Entity) Update() (result sql.Result, err error) {
return Model.Data(r).Where(gdb.GetWhereConditionOfStruct(r)).Update()
}
这段代码中 gdb.GetWhereConditionOfStruct(r) 返回三个参数: 字段 值 错误参数
而在Where函数接收参数时如下段代码
在user_model.go文件中
func (m *arModel) Where(where interface{}, args ...interface{}) *arModel {
return &arModel{m.M.Where(where, args...)}
}
误将error返回的nil添加到值中 导致参数多于需要的个数
望解决!
应该是版本问题~很久没维护了,后面抽时间测测