Laravel 中间件:注册全局中间件 Draft 1 个改进

问题

我创建了一个中间件,想让它在处理每个 HTTP 请求期间运行,该怎么做?

回答

如果希望中间件在应用处理每个 HTTP 请求期间运行,应将其注册为全局中间件。

注册全局中间件

注册全局中间件很简单,只需在 app/Http/Kernel.php 文件中的 $middleware 属性中列出这个中间件即可:

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{
    /**
     * The application's global HTTP middleware stack.
     *
     * These middleware are run during every request to your application.
     *
     * @var array
     */
    protected $middleware = [
        \App\Http\Middleware\CheckForMaintenanceMode::class,
        \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
        \App\Http\Middleware\TrimStrings::class,
        \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
        \App\Http\Middleware\TrustProxies::class,

        \App\Http\Middleware\CheckMicroMessenger::class,
    ];

    // 省略...
}

可以看到,这个文件已经注册了很多 Laravel 自带的中间件,我们将需要的中间件的完全限定类名后加 ::class(比如\App\Http\Middleware\CheckMicroMessenger::class, )添加到 $middleware 数组属性的尾部即可。

参考

本 Wiki 尚未完善,邀您参与 如何撰写一篇高品质的 Wiki?
讨论数量: 1
elesos

与上一节重复

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!