摘要:事情的起源是因為在調(diào)試一段模型事件時出現(xiàn)的,當(dāng)時隨便往數(shù)據(jù)庫里插入了一段字符串,而不是標(biāo)準(zhǔn)的。然后發(fā)現(xiàn)我的模型事件中查找不到當(dāng)前的模型。進一步查看,這個整數(shù)大小,很熟悉,覺得應(yīng)該是整數(shù)類型大小溢出了。
起源
辦法總比困難多,所以發(fā)現(xiàn)問題比解決問題更難得到。
事情的起源是因為在調(diào)試一段模型事件時出現(xiàn)的,當(dāng)時隨便往數(shù)據(jù)庫里插入了一段字符串 ID,而不是標(biāo)準(zhǔn)的 uuid。然后發(fā)現(xiàn)我的模型事件中查找不到當(dāng)前 ID 的模型。
當(dāng)然,我們不可能總是能遇到問題,也有可能遇到了問題是自己的錯誤,這時候可以去Laravel的問題庫看一下自己有什么能解決的問題
進展先排除了自己本身代碼中的錯誤,然后一步一步調(diào)試
打印了一下返回變量,發(fā)現(xiàn)belongsToMany::sync方法返回的 ID 并不正確。
進一步查看,這個整數(shù)大小,很熟悉,覺得應(yīng)該是整數(shù)類型大小溢出了。然后看了一下源碼InteractsWithPivotTable::caseKey
基本確定就是整形數(shù)字溢出了,這里只是簡單的根據(jù)變量類型進行強轉(zhuǎn),因為 PHP 是弱類型語言,所以當(dāng)長字符是一個數(shù)字字符串時,將導(dǎo)致無法得到正確的結(jié)果。
但我在模型中已經(jīng)設(shè)置了主鍵類型為字符串,這不應(yīng)該是我想要的結(jié)果。
然后我向框架提了一個issues
Laravel 的組織成員tillkruss 告訴我可以提交一個 PR
然后自己馬上行動起來,說實話解決這個問題很簡單,因為只要獲取主鍵類型,然后進行強轉(zhuǎn)即可
馬上提交了代碼,之后被駁回,原來是忘記了寫測試代碼
查看了一下其他數(shù)據(jù)庫的測試代碼,找了一個比較符合我的寫了一個數(shù)據(jù)庫的測試。提交。成功合并。
具體修改的代碼,可以查看這里 5.7 Improve the return value of the caseKey method
結(jié)束第一次為大型項目提交PR,確實感覺到不能這么隨意。
寫代碼的時候請明確解釋這段代碼的原因,你會發(fā)現(xiàn)框架當(dāng)中很多很多的注釋
千萬不要忘記寫測試文件
當(dāng)你提交PR的時候,請詳細(xì)描述你本次做了什么改動,增加了什么新功能。
盡情的表達你的想法,社區(qū)有很多人會幫助你的
最后歡迎加入Laravel學(xué)習(xí)交流群,群號:584453488
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28703.html
摘要:容器主要的作用就是生產(chǎn)各種零件,就是提供各個服務(wù)。的原理我們以為例,來講解一下門面的原理與實現(xiàn)。當(dāng)運行時,發(fā)現(xiàn)門面沒有靜態(tài)函數(shù),就會調(diào)用這個魔術(shù)函數(shù)。我們看到這個魔術(shù)函數(shù)做了兩件事獲得對象實例,利用對象調(diào)用函數(shù)。 前言 在開始之前,歡迎關(guān)注我自己的博客:www.leoyang90.cn這篇文章我們開始講 laravel 框架中的門面 Facade,什么是門面呢?官方文檔: Facade...
摘要:下面是剛才說的這些步驟對應(yīng)的核心代碼收集路由和控制器里應(yīng)用的中間件我們在前面的文章里已經(jīng)詳細(xì)的解釋過中間件和路由的原理了,接下來就看看當(dāng)請求最終找到了路由對應(yīng)的控制器方法后是如何為控制器方法注入正確的參數(shù)并調(diào)用控制器方法的。 控制器 控制器能夠?qū)⑾嚓P(guān)的請求處理邏輯組成一個單獨的類, 通過前面的路由和中間件兩個章節(jié)我們多次強調(diào)Laravel應(yīng)用的請求在進入應(yīng)用后首現(xiàn)會通過Http Ker...
摘要:值得一提的是每篇文章都是我用心整理的,編者一貫堅持使用通俗形象的語言給我的讀者朋友們講解機器學(xué)習(xí)深度學(xué)習(xí)的各個知識點。今天,紅色石頭特此將以前所有的原創(chuàng)文章整理出來,組成一個比較合理完整的機器學(xué)習(xí)深度學(xué)習(xí)的學(xué)習(xí)路線圖,希望能夠幫助到大家。 一年多來,公眾號【AI有道】已經(jīng)發(fā)布了 140+ 的原創(chuàng)文章了。內(nèi)容涉及林軒田機器學(xué)習(xí)課程筆記、吳恩達 deeplearning.ai 課程筆記、機...
摘要:而且,據(jù)說他的大女兒和小女兒都是做測試的,這是名副其實的測試世家。確定測試需求相應(yīng)的測試方法獲得測試策略方案。負(fù)責(zé)這一領(lǐng)域測試質(zhì)量保證開發(fā)內(nèi)的整個開發(fā)生存周期業(yè)務(wù)。 ...
摘要:上次的訪談,介紹了下可愛的依云醬,回憶傳送門。這里簡單地介紹下龍女仆,全名小林家的龍女仆,為什么介紹這部劇呢因為設(shè)計獅顏值同學(xué)也安利了這部。劇情簡介在獨身又勞累的小林劃重點一名程序員身邊突然出現(xiàn)的穿著女仆服裝的美少女托爾。 showImg(https://segmentfault.com/img/bVR6p5?w=900&h=385); 上次的訪談,介紹了下可愛的依云醬,回憶傳送門。不...
閱讀 663·2021-11-25 09:43
閱讀 1672·2021-11-18 10:02
閱讀 1052·2021-10-15 09:39
閱讀 1898·2021-10-12 10:18
閱讀 2129·2021-09-22 15:43
閱讀 782·2021-09-22 15:10
閱讀 2093·2019-08-30 15:53
閱讀 998·2019-08-30 13:00