前端技术 手机教程
程序开发 平面动画
系统软件 CMS教程
CMS教程 在线手册
资源下载 网络安全
精准搜索请尝试:精确搜索

Laravel学习心得之小技巧01:开发中无需考虑请求参数中的前后空白字符

2021-09-07 16:46:12 来源:原创 作者:寂静的神经

在日常开发中,我们通常会对请求提交的参数进行一些基本的处理,其中一项就是过滤掉提交参数的前后空白字符,避免出现异常。

但是在今天学习 Laravel 源码的过程中发现,Laravel 已经默认提供了一个全局中间件:TrimStrings 来替我们做这件事。

因此我们在使用 Laravel 开发过程中就无需额外考虑请求参数中的前后空白字符串了。

当然有的小伙伴会问,那如果参数是密码呢?密码中的前后空白字符是密码的合法组成之一,比如:“ 02045.com ”和“02405.com”应该是两个不同的密码。

关于这点 Laravel 也替我们想到了,在该中间件中忽略掉了 password 和 password_confirmation 两个参数。

附1: \App\Http\Middleware\TrimStrings::class 源码

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;

class TrimStrings extends Middleware
{
    /**
     * The names of the attributes that should not be trimmed.
     *
     * @var array
     */
    protected $except = [
        'password',
        'password_confirmation',
    ];
}

附2:Illuminate\Foundation\Http\Middleware\TrimStrings 源码

<?php

namespace Illuminate\Foundation\Http\Middleware;

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;
    }
}

 

本文关键词:laravel 参数 请求

相关文章

零五网,分享IT知识,国内顶级IT知识门户网站。

Copyright (C) www.02405.com, All Rights Reserved.

零五网 版权所有 辽ICP备13002105号-1