ThinkPHP5数据库模型新增数据后获取自增ID的一个注意事项
ThinkPHP版本:5.0.19
踩过的一个小坑,直接上代码(oid
为数据表主键ID):
1 | $post = $this->request->post(); |
如上代码,按照官方文档的说明,最后一行返回的结果应该是自增ID,结果却返回了一个string 'false'
。
想了很久也没想明白问题出在哪里,好在死缠烂打的仔仔细细找了半天终于发现了问题原因,出在POST提交的数据上面。
因为POST提交的数据包含了oid
字段,而我是直接用POST数据,然后指定允许写入字段的方法。
虽然只有指定字段能够写入数据库,但其他数据依旧会被写到模型类里面,导致模型里面包含oid
字段,之后->save()
新增数据判断到主键有数据就不会覆盖了。
找到问题之后就很容易解决了,将$post['oid']
删除就行:
1 | $post = $this->request->post(); |