在日常开发中,我们通常会对请求提交的参数进行一些基本的处理,其中一项就是过滤掉提交参数的前后空白字符,避免出现异常。
但是在今天学习 Laravel 源码的过程中发现,Laravel 已经默认提供了一个全局中间件:TrimStrings 来替我们做这件事。
因此我们在使用 Laravel 开发过程中就无需额外考虑请求参数中的前后空白字符串了。
当然有的小伙伴会问,那如果参数是密码呢?密码中的前后空白字符是密码的合法组成之一,比如:“ 02045.com ”和“www.codesou.cn”应该是两个不同的密码。
关于这点 Laravel 也替我们想到了,在该中间件中忽略掉了 password 和 password_confirmation 两个参数。
附1: AppHttpMiddlewareTrimStrings::class 源码
<?php
namespace AppHttpMiddleware;
use IlluminateFoundationHttpMiddlewareTrimStrings as Middleware;
class TrimStrings extends Middleware
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
'password',
'password_confirmation',
];
}
附2:IlluminateFoundationHttpMiddlewareTrimStrings 源码
<?php
namespace IlluminateFoundationHttpMiddleware;
class TrimStrings extends TransformsRequest
{
/**
* The attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
//
];
/**
* Transform the given value.
*
* @param string $key
* @param mixed $value
* @return mixed
*/
protected function transform($key, $value)
{
if (in_array($key, $this->except, true)) {
return $value;
}
return is_string($value) ? trim($value) : $value;
}
}
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel 学习心得之小技巧01:开发中无需考虑请求参数中的前后空白字符
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Laravel 学习心得之小技巧01:开发中无需考虑请求参数中的前后空白字符