🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 中间件 为了更好的过滤路由,可以采用中间件方案 需求如下: 1. 判断是否登录 2. 记录操作日志 ### 创建中间件存放目录 ``` mkdir -p controllers/middleware && cd controllers/middleware ``` ### 实现中间件功能 ``` touch publicMiddleware.php ``` ### 复制以下代码 ``` <?php namespace controllers\middleware; use system\Base; use system\Route\Middleware; use system\Route\Route; class publicMiddleware extends Middleware { /** * @param \system\Base $controller 当前执行的控制器 * @param \system\Route\Route $route 当前执行的Route实例 * * @return string|bool */ public function execMiddleware(Base $controller, Route $route) { // 该中间件所需要执行的过滤代码... // self::$session是Base控制器处理好的信息 if (!self::$session['userinfo']) { return '请登录后操作'; } return true; } } ``` 配置使用中间件,打开config/routes.php ``` //加入一条路由,配置中间件 Route::get('/member/info' , 'User@info' , 'middleware\publicMiddleware'); ``` 路由组配置 ``` //路由分组 Route::group('/admin' , function(){ Route::get('/' , 'Admin\Index@index'); } , 'middleware\publicMiddleware') ``` 路由组也支持普通路由的设置中间件方式 !!! routes设置中间件的优先级最高