not null
, 并且設(shè)置默認(rèn)值為空
,檔表單傳上來(lái)的時(shí)候如果沒有值會(huì)被中間件轉(zhuǎn)為null
,每次都要注釋掉這個(gè)中間件,誰(shuí)能講下轉(zhuǎn)為null到底為什么?哪里好?問(wèn)題1:
官方?jīng)]有任何文獻(xiàn)說(shuō)明 空字符串
比 null
效率高。
問(wèn)題2:
數(shù)據(jù)庫(kù)設(shè)計(jì)是矛盾的,既然默認(rèn)值是空
,就沒必要設(shè)置字段為 not null
。如果你非要這樣,你可以在 controller
里面使用 array_filter($request->all())
來(lái)過(guò)濾掉 null
或者 空字符串
的參數(shù)。
最后,Laravel 是在 5.4 開始加入的,同時(shí)加入的還有 TrimStrings
, 官方的提交記錄沒有說(shuō)明是為了什么,個(gè)人認(rèn)為官方是為了標(biāo)準(zhǔn)化數(shù)據(jù)格式,進(jìn)行統(tǒng)一規(guī)范。
=======分割線=======
繼續(xù)補(bǔ)充一下:
如果非要按照自己的要求來(lái),也建議不要直接去注釋掉官方的中間件引用,以免其他問(wèn)題,可以定義你自己的 request,在request 處理這個(gè)參數(shù)的時(shí)候,修改成自己想要的值。
php artisan make:request YourRequest
=======繼續(xù)割========
By default, Laravel includes the TrimStrings and ConvertEmptyStringsToNull middleware in your application's global middleware stack. These middleware are listed in the stack by the AppHttpKernel class. These middleware will automatically trim all incoming string fields on the request, as well as convert any empty string fields to null. This allows you to not have to worry about these normalization concerns in your routes and controllers.If you would like to disable this behavior, you may remove the two middleware from your application's middleware stack by removing them from the $middleware property of your AppHttpKernel class.
看官方描述的意思 TrimStrings
和 ConvertEmptyStringsToNull
就是為了規(guī)范化數(shù)據(jù)。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。