亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

談?wù)勎沂侨绾螢?Laravel 貢獻(xiàn)源碼

Baaaan / 2149人閱讀

摘要:事情的起源是因?yàn)樵谡{(diào)試一段模型事件時(shí)出現(xiàn)的,當(dāng)時(shí)隨便往數(shù)據(jù)庫里插入了一段字符串,而不是標(biāo)準(zhǔn)的。然后發(fā)現(xiàn)我的模型事件中查找不到當(dāng)前的模型。進(jìn)一步查看,這個(gè)整數(shù)大小,很熟悉,覺得應(yīng)該是整數(shù)類型大小溢出了。

起源

辦法總比困難多,所以發(fā)現(xiàn)問題比解決問題更難得到。

事情的起源是因?yàn)樵谡{(diào)試一段模型事件時(shí)出現(xiàn)的,當(dāng)時(shí)隨便往數(shù)據(jù)庫里插入了一段字符串 ID,而不是標(biāo)準(zhǔn)的 uuid。然后發(fā)現(xiàn)我的模型事件中查找不到當(dāng)前 ID 的模型。

當(dāng)然,我們不可能總是能遇到問題,也有可能遇到了問題是自己的錯(cuò)誤,這時(shí)候可以去Laravel的問題庫看一下自己有什么能解決的問題

進(jìn)展

先排除了自己本身代碼中的錯(cuò)誤,然后一步一步調(diào)試



打印了一下返回變量,發(fā)現(xiàn)belongsToMany::sync方法返回的 ID 并不正確。

進(jìn)一步查看,這個(gè)整數(shù)大小,很熟悉,覺得應(yīng)該是整數(shù)類型大小溢出了。然后看了一下源碼InteractsWithPivotTable::caseKey

基本確定就是整形數(shù)字溢出了,這里只是簡(jiǎn)單的根據(jù)變量類型進(jìn)行強(qiáng)轉(zhuǎn),因?yàn)?PHP 是弱類型語言,所以當(dāng)長(zhǎng)字符是一個(gè)數(shù)字字符串時(shí),將導(dǎo)致無法得到正確的結(jié)果。

但我在模型中已經(jīng)設(shè)置了主鍵類型為字符串,這不應(yīng)該是我想要的結(jié)果。

然后我向框架提了一個(gè)issues

Laravel 的組織成員tillkruss 告訴我可以提交一個(gè) PR

然后自己馬上行動(dòng)起來,說實(shí)話解決這個(gè)問題很簡(jiǎn)單,因?yàn)橹灰@取主鍵類型,然后進(jìn)行強(qiáng)轉(zhuǎn)即可

馬上提交了代碼,之后被駁回,原來是忘記了寫測(cè)試代碼

查看了一下其他數(shù)據(jù)庫的測(cè)試代碼,找了一個(gè)比較符合我的寫了一個(gè)數(shù)據(jù)庫的測(cè)試。提交。成功合并。

具體修改的代碼,可以查看這里 5.7 Improve the return value of the caseKey method

結(jié)束

第一次為大型項(xiàng)目提交PR,確實(shí)感覺到不能這么隨意。

寫代碼的時(shí)候請(qǐng)明確解釋這段代碼的原因,你會(huì)發(fā)現(xiàn)框架當(dāng)中很多很多的注釋

千萬不要忘記寫測(cè)試文件

當(dāng)你提交PR的時(shí)候,請(qǐng)?jiān)敿?xì)描述你本次做了什么改動(dòng),增加了什么新功能。

盡情的表達(dá)你的想法,社區(qū)有很多人會(huì)幫助你的

最后歡迎加入Laravel學(xué)習(xí)交流群,群號(hào):584453488

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28703.html

相關(guān)文章

  • Laravel框架門面Facade源碼分析

    摘要:容器主要的作用就是生產(chǎn)各種零件,就是提供各個(gè)服務(wù)。的原理我們以為例,來講解一下門面的原理與實(shí)現(xiàn)。當(dāng)運(yùn)行時(shí),發(fā)現(xiàn)門面沒有靜態(tài)函數(shù),就會(huì)調(diào)用這個(gè)魔術(shù)函數(shù)。我們看到這個(gè)魔術(shù)函數(shù)做了兩件事獲得對(duì)象實(shí)例,利用對(duì)象調(diào)用函數(shù)。 前言 在開始之前,歡迎關(guān)注我自己的博客:www.leoyang90.cn這篇文章我們開始講 laravel 框架中的門面 Facade,什么是門面呢?官方文檔: Facade...

    wanghui 評(píng)論0 收藏0
  • Laravel核心解讀--控制器

    摘要:下面是剛才說的這些步驟對(duì)應(yīng)的核心代碼收集路由和控制器里應(yīng)用的中間件我們?cè)谇懊娴奈恼吕镆呀?jīng)詳細(xì)的解釋過中間件和路由的原理了,接下來就看看當(dāng)請(qǐng)求最終找到了路由對(duì)應(yīng)的控制器方法后是如何為控制器方法注入正確的參數(shù)并調(diào)用控制器方法的。 控制器 控制器能夠?qū)⑾嚓P(guān)的請(qǐng)求處理邏輯組成一個(gè)單獨(dú)的類, 通過前面的路由和中間件兩個(gè)章節(jié)我們多次強(qiáng)調(diào)Laravel應(yīng)用的請(qǐng)求在進(jìn)入應(yīng)用后首現(xiàn)會(huì)通過Http Ker...

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

    摘要:值得一提的是每篇文章都是我用心整理的,編者一貫堅(jiān)持使用通俗形象的語言給我的讀者朋友們講解機(jī)器學(xué)習(xí)深度學(xué)習(xí)的各個(gè)知識(shí)點(diǎn)。今天,紅色石頭特此將以前所有的原創(chuàng)文章整理出來,組成一個(gè)比較合理完整的機(jī)器學(xué)習(xí)深度學(xué)習(xí)的學(xué)習(xí)路線圖,希望能夠幫助到大家。 一年多來,公眾號(hào)【AI有道】已經(jīng)發(fā)布了 140+ 的原創(chuàng)文章了。內(nèi)容涉及林軒田機(jī)器學(xué)習(xí)課程筆記、吳恩達(dá) deeplearning.ai 課程筆記、機(jī)...

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

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

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

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

    neroneroffy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<