跳转到主内容
websoft网络软件专家 - 深耕网络技术,打造实用软件!

Laravel如何创建自定义中间件?(Middleware代码示例)

Laravel 中创建自定义中间件需运行 php artisan make:middleware CheckAge 生成类,在 handle 方法中编写逻辑(如检查年龄≥18),再注册并应用到路由或控制器。 在 Laravel 中创建自定义中间件很简单,核心是使用 Artisan 命令生成类,然后在
handle
方法里写逻辑,最后注册并应用到 路由 或控制器。 生成中间件类 Laravel 提供了便捷命令自动创建中间件文件: 运行
php artisan make:middleware CheckAge
会在
app/Http/Middleware/
目录下生成
CheckAge.php
该类默认包含
handle
方法和
$next
参数(代表下一个请求处理者) 编写中间件逻辑(示例:年龄检查) 比如限制用户必须年满 18 岁才能访问某页面:
age < 18) { return redirect('home'); } return $next($request); } }
注意:
$next($request)
必须被调用,否则请求链会中断;返回
redirect
或
response
可提前终止流程。 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 注册中间件 中间件需先注册才能使用: 全局中间件(所有请求都经过):在
app/Http/Kernel.php
的
$middleware
数组中添加 分组中间件(如 web/api):加到
$middlewareGroups
对应数组里(例如
web
) 路由中间件(只对特定路由生效):在
$routeMiddleware
中注册别名,例如:
'age' => \App\Http\Middleware\CheckAge::class,
在路由或控制器中使用 注册别名后,即可灵活调用: 路由中使用:
Route::get('/profile', [ProfileController::class, 'show'])->middleware('age');
多个中间件可链式写:
->middleware(['auth', 'age'])
控制器构造函数中绑定:
$this->middleware('age');
控制器方法级控制:
$this->middleware('age')->only('edit');
基本上就这些。中间件本质就是请求-响应管道中的一个处理环节,写清楚判断条件和放行/拦截逻辑,再正确注册和调用,就能满足绝大多数权限、校验、日志等场景需求。

相关文章