Laravel5.4 引入了兩個內(nèi)置的中間件分別是 ConvertEmptyStringsToNull 和 TrimStrings,第一個中間件負責將空字符串的請求參數(shù)轉(zhuǎn)換為 NULL 值,第二個中間件負責過濾掉請求參數(shù)中前導(dǎo)和追加的空格。
舉個例子,在 5.3 版本里,假設(shè)我們有這么個請求參數(shù) ?age=&email=%20jon@snow.com,接收到到的 age 會是空字符串,email 會是 “ jon@snow.com”,前面多了一個空格。5.4 里 age 就會是 null,email 也是正常值。
使用 Validator 的注意事項
在 5.4 中使用驗證器時,要記住從請求對象傳遞的空字符串將被轉(zhuǎn)換為 null,這意味著下面的規(guī)則將失敗:
"age" => "integer"
這是因為 age 值已經(jīng)被轉(zhuǎn)換為 null 了,所以你的驗證規(guī)則必須為:
"age" => "nullable|integer"
所以使用到這個 ConvertEmptyStringsToNull 中間件的時候要注意下。