Laravel 中间件:所有自带中间件
warning:
这篇文章距离上次修改已过420天,其中的内容可能已经有所变动。
Laravel 中间件是一种处理 HTTP 请求的中间层,它可以拦截和修改请求,并在其路由处理之前或之后执行。Laravel 提供了一些自带的中间件,这些中间件被定义在 app/Http/Kernel.php 文件中。
以下是 Laravel 中间件的一些常见自带中间件:
Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class:检查应用程序是否处于维护模式。Illuminate\Foundation\Http\Middleware\ValidatePostSize::class:验证 POST 数据大小是否超过配置限制。Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class:检查应用程序是否处于维护模式。Illuminate\Foundation\Http\Middleware\TrimStrings::class:修剪请求字符串。Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class:将空字符串转换为null。Illuminate\Foundation\Http\Middleware\TrustProxies::class:信任代理头。Illuminate\Session\Middleware\StartSession::class:启动会话。Illuminate\View\Middleware\ShareErrorsFromSession::class:共享错误信息到视图。Illuminate\Routing\Middleware\SubstituteBindings::class:替换路由绑定。Illuminate\Auth\Middleware\Authenticate::class:执行认证。Illuminate\Auth\Middleware\Authorize::class:执行授权。Illuminate\Auth\Middleware\EnsureEmailIsVerified::class:确保邮箱已验证。
要使用这些中间件,你需要在 app/Http/Kernel.php 文件中的 $routeMiddleware 数组中注册它们。这样,你就可以在路由或控制器中使用它们了。
例如,如果你想要为所有路由启用会话开始中间件,你可以在 $middleware 属性中添加 StartSession 中间件:
protected $middleware = [
// ...
\Illuminate\Session\Middleware\StartSession::class,
// ...
];如果你想要为某个特定的路由分组启用某个中间件,你可以在 $middlewareGroups 数组中添加它:
protected $middlewareGroups = [
'web' => [
// ...
\Illuminate\Session\Middleware\StartSession::class,
// ...
],
// ...
];如果你想要为路由定义中间件,你可以在路由定义时使用 middleware 方法:
Route::get('/', function () {
//
})->middleware(\Illuminate\Session\Middleware\StartSession::class);或者使用别名:
Route::get('/', function () {
//
})->middleware('session');注意,session 是 StartSession 中间件的别名,它在 app/Http/Kernel.php 文件的 $middlewareAliases 数组中定义。
以上就是 Laravel 中间件的一些基本使用方法。
评论已关闭