美文网首页
来自空巷的一纸随笔

来自空巷的一纸随笔

作者: Moody空巷 | 来源:发表于2018-10-30 00:02 被阅读0次

    加入简书好久了,以前从来没有这么高的兴致来写一篇文章。为什么我今天会想写些什么,不过是想现在开始,好好总结,过好每一天。

    在新的公司,用新的框架,一开始总会有点沉实要把事情做好。新公司用的laravel框架,初步上手,看着文档,入门倒也简单。可是开发过程中,就我这性子,还没学会怎么走就想开始跑。看着平时冗重的数据库操作,发现laravel有这么个函数updateOrCreate,顾名思义,更新或者创建,简洁明了。可是使用过程中,这么一个函数,卡着好几天,我是反复测试,都找不到原因。能创建,不能更新(图1),明明写法没错,参数没错。那么为什么?

    图1

    关于updateOrCreate这个函数,我是问同事,问前辈,问度娘。起初,发现第一个错误,Model实例的时候没有写$fillable(允许什么字段插入),再测试,还是不行。打印执行结果返回是true,可是数据纹丝不动。然后再找前辈取经,被告知laravel-debugar这个拓展包。按着指引装完,测试。发现这个debug只会响应错误操作。前辈的一句--那就让他报错,使我茅塞顿开。好了,终于得到这个updateOrCreate()的sql语句。发现  ·id· = null(图2),

    图2

    这就逐渐明朗了,建表的时候我没有太注意主键名称·Id·。这个单词虽然一样,但是大小写的差异却是整个问题的出入点。再回来看laravel框架,Model默认$primaryKey='id',原来原因就在这里。

    那么问题找到了,解决方案我能想到的是两个:1 修改Model的默认$primaryKey; 2 建表的时候,把id规范好,因为这也是大都潜移默化的认知点。

    晚安!

    相关文章

      网友评论

          本文标题:来自空巷的一纸随笔

          本文链接:https://www.haomeiwen.com/subject/zihwtqtx.html