请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

【求助】user.create不能正常新增带openid的数据

现在遇到了一个问题
就是新增一个用户的时候,不能以我要求的字段去新增
根据要求应该是按照openid去新建一个用户
但是sql语句执行打印可以看出来 它只新增了一条默认数据
图片描述

数据库字段看起来也没啥问题
没有大小写的typo
图片描述

我又试了一下其他的 新增Like就是完全正常的
就是User新增的时候有问题。

麻烦大家帮我康康呜呜呜
一直被堵在这里没法继续了
谢谢!

正在回答 回答被采纳积分+3

2回答

提问者 皮皮酸胖胖 2020-02-10 10:10:14

https://img1.sycdn.imooc.com//szimg/5e40b9af09afbbaf27140242.jpg

我把create的命令换成了findOrCreate (条件是where: { openid })

想看看能不能解决这个问题

结果…(看上图) 

findOrCreate的Sql语句分步走,可以看到:

到find这一步的时候openid这个条件还是被使用了的,但是到了create的时候 openid这个字段又凭空消失了 →_→ 只留下空空荡荡的default字段

而且sql到了create这一步的时候前面都会自己先打印一个0或者1,错误预警吗这是?

----

现在我另辟蹊径了:先新建一条数据(失败的那种 只有default values),然后拿到这条数据的id,然后手动update这条数据where:{id} 把openid和一些本该直接新建出来的字段更新进去

---

但是我还是想知道出现我这个问题的原因是啥

我的User model的create是被我怎么玩脱儿了的

拜托各位了,本小白挠的头都秃了

0 回复 有任何疑惑可以回复我~
  • 7七月 #1
    解决了吗,我觉得这个问题你可以对比下其他表或者源代码。应该还是哪里设置出错了
    回复 有任何疑惑可以回复我~ 2020-02-14 10:33:18
提问者 皮皮酸胖胖 2020-02-06 16:52:10

补充一下 

而且一旦我在model里要求了openid notNull

create的时候就会直接报错 notNull violation

但是新建之前 先打印openid出来发现都是有值、正常的!

也不知道为啥一直报null .... TAT

0 回复 有任何疑惑可以回复我~
  • 7七月 #1
    是不是数据库的字段设置有问题?
    回复 有任何疑惑可以回复我~ 2020-02-09 06:27:03
  • 提问者 皮皮酸胖胖 回复 7七月 #2
    我检查了很多遍了。其他model都可以正常新增自定义字段的数据,就user这个模型不行。哪怕我把user model那里的字段设置全都改成跟老师一样,删掉user表之后 再插入新数据 也不行。navicat我也没有乱设置过… db.js我也检查了,跟老师的写法是一样的。还有哪里会有问题吗?我google过了,好像没人碰到我这个问题
    回复 有任何疑惑可以回复我~ 2020-02-10 09:08:00
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信