成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

談?wù)勎沂侨绾螢?Laravel 貢獻源碼

Baaaan / 2109人閱讀

摘要:事情的起源是因為在調(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

相關(guān)文章

  • Laravel框架門面Facade源碼分析

    摘要:容器主要的作用就是生產(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...

    wanghui 評論0 收藏0
  • Laravel核心解讀--控制器

    摘要:下面是剛才說的這些步驟對應(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...

    fxp 評論0 收藏0
  • 分享AI有道干貨 | 126 篇 AI 原創(chuàng)文章精選(ML、DL、資源、教程)

    摘要:值得一提的是每篇文章都是我用心整理的,編者一貫堅持使用通俗形象的語言給我的讀者朋友們講解機器學(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 課程筆記、機...

    jimhs 評論0 收藏0
  • 你知道這5年我怎么過的嗎!談?wù)?/em>我做測試開發(fā)的這些年……【總結(jié)】

    摘要:而且,據(jù)說他的大女兒和小女兒都是做測試的,這是名副其實的測試世家。確定測試需求相應(yīng)的測試方法獲得測試策略方案。負(fù)責(zé)這一領(lǐng)域測試質(zhì)量保證開發(fā)內(nèi)的整個開發(fā)生存周期業(yè)務(wù)。 ...

    silenceboy 評論0 收藏0
  • SegmentFault 社區(qū)訪談 | mcfog:自由進出 Coding && A

    摘要:上次的訪談,介紹了下可愛的依云醬,回憶傳送門。這里簡單地介紹下龍女仆,全名小林家的龍女仆,為什么介紹這部劇呢因為設(shè)計獅顏值同學(xué)也安利了這部。劇情簡介在獨身又勞累的小林劃重點一名程序員身邊突然出現(xiàn)的穿著女仆服裝的美少女托爾。 showImg(https://segmentfault.com/img/bVR6p5?w=900&h=385); 上次的訪談,介紹了下可愛的依云醬,回憶傳送門。不...

    neroneroffy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<