0
点赞
收藏
分享

微信扫一扫

golang gin-admin gorm 软删除invalid value, should be pointer to struct or slice 问题解决


大概报错如下:

2022/08/23 09:33:07 /xxx/internal/app/dao/xxx/xxx.repo.go:112 invalid value, should be pointer to struct or slice
[0.062ms] [rows:0] UPDATE `g_xxx` SET `deleted_at`='2022-08-23 09:33:07.462' WHERE id=56587729307180389 AND `g_approval`.`deleted_at` IS NULL
ERRO[2022-08-23T09:33:07+08:00] invalid value, should be pointer to struct or slice stack="invalid value, should be pointer to struct or slice\n xxx/internal/app/dao/xxx.(*xxxRepo).Delete\n\t/xxx/internal/app/dao/xxx/xxx.repo.go:113\n xxx/internal/app/service.(*xxxlSrv).Delete.func1\n\t/xxx/internal/app/service/xxx.srv.go:237\
...

原因分析:大概是因为repo.go文件delete方法中,调用指针问题找到 Where(“id=?”, id).Delete(xxx{}) 可以将里面的 xxx{} 改成 &xxx{} 试试看

func (a *DemoRepo) Delete(ctx context.Context, id uint64) error {
result := GetApprovalDB(ctx, a.DB).Where("id=?", id).Delete(&Demo{}) //里面的 &很重要
return errors.WithStack(result.Error)
}



举报

相关推荐

0 条评论