可以使用路由中间件,注册方式如下:
Route::rule('hello/:name','hello')
->middleware(\app\middleware\Auth::class);
复制或者对路由分组注册中间件
Route::group('hello', function(){
Route::rule('hello/:name','hello');
})->middleware(\app\middleware\Auth::class);
复制如果需要传入额外参数给中间件,可以使用
Route::rule('hello/:name','hello')
->middleware(\app\middleware\Auth::class,'admin');
复制如果需要定义多个中间件,使用数组方式
Route::rule('hello/:name','hello')
->middleware([\app\middleware\Auth::class,\app\middleware\Check::class]);
复制可以统一传入同一个额外参数
Route::rule('hello/:name','hello')
->middleware([\app\middleware\Auth::class, \app\middleware\Check::class], 'admin');
复制
如果你希望某个路由中间件是全局执行(不管路由是否匹配),可以不需要在路由里面定义,支持直接在路由配置文件中定义,例如在config/route.php
配置文件中添加:
'middleware' => [
app\middleware\Auth::class,
app\middleware\Check::class,
],
复制
这样,所有该应用下的请求都会执行Auth
和Check
中间件。
更多中间件的用法参考架构章节的中间件内容。