[Day29]Laravel Middleware

定义中间件

请使用Artisan 命令:make:middleware

php artisan make:middleware CheckWord
今天来做可以过滤不好字眼产品名称的中间件
将要处理的逻辑放在hadle函数中

public function handle(Request $request, Closure $next)
{
    $checkwords = [ // 随便举个范例
        'cool',
        'wow'
    ];
    $parameters = $request->all();
    foreach($parameters as $key => $value){
        if ($key == "name"){
            foreach($checkwords as $checkword){
                if (strpos($checkword, $value) !== false){
                    return response('请重新输入', 400);
                }
            }
        }
    }
    return $next($request);
}

注册中间件

如果您希望在对您的应用程序的每个 HTTP 请求期间运行中间件,只需在app/Http/Kernel.php中列出你的$middleware类,只需将其附加到此列表并为其分配您选择的键。

protected $routeMiddleware = [
    'auth' => \App\Http\Middleware\Authenticate::class,
    'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
    'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
    'can' => \Illuminate\Auth\Middleware\Authorize::class,
    'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
    'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
    'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
    
    'check.word' => \App\Http\Middleware\CheckWord::class,
];

为路由分配中间件

Route::group(['middleware' => ['check.word']], function () {
    Route::resource('/product', 'productController');
});

测试

https://ithelp.ithome.com.tw/upload/images/20210927/20128999Pxj9RqH4ta.jpg

成功!!!!


<<:  Day.22 Unique Paths

>>:  Domain layer implementation

awk-3 运算符与函数

前两篇回顾 awk - 简介 Linux 制表好工具 awk-2 Regex搭配浅谈 awk是个程序...

Data layer testing (1)

在切回去写 domain layer 之前,我们先把之前写好的 data layer class 补...

自动化 End-End 测试 Nightwatch.js 之踩雷笔记:等待时间

在测试一个网页时,时常会有需要等待的时候,可能是等待网页载入、等待 UI 显示或等待搜寻结果等 pa...

DAY26 第一个完整程序练习,一台计算机!(一)

今天我们要来做一个专案,我要做一个计算机,以我们所学的来说技术方面很简单,但逻辑方面会比较难,以我来...

Azure 命令工具资源汇整

葛瑞部落格欢迎光顾 线上工具 Azure CloudShell 离线必要工具 Azure CLI C...