起源
- 办法总比困难多,因此发现问题比解决问题更可贵到。
- 事情的起源是由于在调试一段模型事件时出现的,当时随便往数据库里插入了一段字符串
ID
,而不是标准的 uuid
。而后发现个人模型事件中查找不到当前 ID
的模型。
- 固然,咱们不可能老是能遇到问题,也有可能遇到了问题是本身的错误,这时候能够去Laravel的问题库看一下本身有什么能解决的问题
进展



- 打印了一下返回变量,发现
belongsToMany::sync
方法返回的 ID
并不正确。

- 进一步查看,这个整数大小,很熟悉,以为应该是整数类型大小溢出了。而后看了一下源码
InteractsWithPivotTable::caseKey

- 基本肯定就是整形数字溢出了,这里只是简单的根据变量类型进行强转,由于
PHP
是弱类型语言,因此当长字符是一个数字字符串时,将致使没法获得正确的结果。
- 但我在模型中已经设置了主键类型为字符串,这不该该是我想要的结果。

结束
- 第一次为大型项目提交PR,确实感受到不能这么随意。
- 写代码的时候请明确解释这段代码的缘由,你会发现框架当中不少不少的注释
- 千万不要忘记写测试文件
- 当你提交PR的时候,请详细描述你本次作了什么改动,增长了什么新功能。
- 尽情的表达你的想法,社区有不少人会帮助你的
最后欢迎加入Laravel学习交流群,群号:584453488
laravel