可以使用路由中间件,注册方式如下:
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
中间件。
更多中间件的用法参考架构章节的中间件内容。