Laravel5.4 引入了两个内置的中间件分别是 ConvertEmptyStringsToNull
和 TrimStrings
,第一个中间件负责将空字符串的请求参数转换为 NULL 值,第二个中间件负责过滤掉请求参数中前导和追加的空格。
举个例子,在 5.3 版本里,假设我们有这么个请求参数 ?age=&email=%20jon@snow.com
,接收到到的 age 会是空字符串,email 会是 “ jon@snow.com”
,前面多了一个空格。5.4 里 age 就会是 null,email 也是正常值。
使用 Validator 的注意事项
在 5.4 中使用验证器时,要记住从请求对象传递的空字符串将被转换为 null,这意味着下面的规则将失败:
"age" => "integer"
这是因为 age 值已经被转换为 null 了,所以你的验证规则必须为:
"age" => "nullable|integer"
所以使用到这个 ConvertEmptyStringsToNull
中间件的时候要注意下。