起源
- 辦法總比困難多,因此發現問題比解決問題更可貴到。
- 事情的起源是由於在調試一段模型事件時出現的,當時隨便往數據庫裏插入了一段字符串
ID
,而不是標準的 uuid
。而後發現個人模型事件中查找不到當前 ID
的模型。
- 固然,咱們不可能老是能遇到問題,也有可能遇到了問題是本身的錯誤,這時候能夠去Laravel的問題庫看一下本身有什麼能解決的問題
進展
- 打印了一下返回變量,發現
belongsToMany::sync
方法返回的 ID
並不正確。
- 進一步查看,這個整數大小,很熟悉,以爲應該是整數類型大小溢出了。而後看了一下源碼
InteractsWithPivotTable::caseKey
- 基本肯定就是整形數字溢出了,這裏只是簡單的根據變量類型進行強轉,由於
PHP
是弱類型語言,因此當長字符是一個數字字符串時,將致使沒法獲得正確的結果。
- 但我在模型中已經設置了主鍵類型爲字符串,這不該該是我想要的結果。
結束
- 第一次爲大型項目提交PR,確實感受到不能這麼隨意。
- 寫代碼的時候請明確解釋這段代碼的緣由,你會發現框架當中不少不少的註釋
- 千萬不要忘記寫測試文件
- 當你提交PR的時候,請詳細描述你本次作了什麼改動,增長了什麼新功能。
- 盡情的表達你的想法,社區有不少人會幫助你的
最後歡迎加入Laravel學習交流羣,羣號:584453488
laravel