go-admin 打印sql语句并提前发现参数错误

go-admin 使用的是此款

引入了 gin 引擎。

准备好环境后,准备一键curd 创建表mingyun

控制台 terminal

生成mingyun.go 放入tables目录 并配置 tables.go

var Generators = map[string]table.Generator{ “blog_article”: GetBlogArticleTable, “blog_auth”: GetBlogAuthTable, “blog_tag”: GetBlogTagTable, “mingyun”: GetMingyunTable,

// generators end }

后台创建菜单创建 必须为info 这块早晚要改。。

mingyun.go 中 增加 新建提交表单内容

非常完美的报错。。。麻蛋实在不知道哪错了。。我知道是sql错了。。但是sql哪错了。。拼接sql什么样子。。打开mysql全量日志,也不知道sql为何错误。。难道我用了关键字。。不应该啊。。

经过debug。。。知道原来新建的addfield中 field 值 Age、Shit 与 数据库中age、shit 不匹配 大小写问题。这个小小问题,将来要快速生成代码就是大问题,排查太坑爹。

于是。。修改源码。。打印出来sql啊。。。希望打开的方式正确,毕竟官网根本没有任何帮助文档,论坛上也没有。 首先要去go modules中找: 修改这里statement.go 在执行sql时候增加 一个错误的返回

if err != nil {
          
   
		err = errors.New("sql: "+sql.Statement+"| error:"+err.Error())
		return 0, err
	}

终于·sql以及错误都一览无余。

但是,归根揭底,我要快速生成curd,我的field就应该和我的表属性一一对应,为啥不早提醒我不对呢。。。所以进一步修改

default.go 文件

//增加一个额外的属性,防止确实需要提交一些额外的属性
if(field.OptionExt2!="EXT") {
          
   
				panic("table columns cant find param -> "+ field.Field +" check form field " )
			}

最终实现了,只要我打错了,就是提示我。

经验分享 程序员 微信小程序 职场和发展