欢迎您访问我的笔记本站旨在于记录一些平时工作中遇到的一些问题和解决方法,方便查阅,部分内容来源于网络,如有侵权请联系我删除
  • 微信微信
您现在的位置是:首页 > PHP后端

Laravel 输入变量过滤设置-[原创]

日期:2021-12-14 06:54:12 作者:tanyi 来源:我的笔记 浏览:735 次
Laravel 默认没有对输入的变量进行一些过滤操作,仅有一些处理空值的操作。用过tp都知道过滤只需要在配置或对象中设置过滤方法即可,但是laravel并没有预留类似处理方法,需要自己动手添加。

Laravel框架默认有一个处理空值的中间件,打开该中间件代码。

class ConvertEmptyStringsToNull extends TransformsRequest
{
    /**
     * Transform the given value.
     *
     * @param  string  $key
     * @param  mixed  $value
     * @return mixed
     */
    protected function transform($key, $value)
    {
        return is_string($value) && $value === '' ? null : $value;
    }
}

可以看见它会把空值默认转变成null,这个我个人感觉没啥作用甚至有副作用。因此我在Kernel.php中把这个中间件注释掉了。

这里我们借助这个代码新增一个对输入变量过滤的中间件。在Http\Middleware中新建一个文件,名字随意,我这里命名为FormFilter,添加对变量的过滤代码,过滤方法自己随意设置,我这里设置htmlspecialchars方法用于过滤操作,代码如下。

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\TransformsRequest;

class FormFilter extends TransformsRequest
{

    protected function transform($key, $value)
    {
        return is_string($value) && $value !== '' ? htmlspecialchars($value) : $value;
    }
}

然后在Kernel.php中的$middleware数组中新增该中间件即可


laravel 接口路由无效(查看配置文件API_DOMAIN参数是否与请求url一致)

提交评论
评论列表