ThinkPHP6路由中间件详解

时间:2020年10月29日

在前面的《ThinkPHP6全局中间件详解》中,我们讲了全局中间件的创建,配置及使用方法。在前面的基础上,接下来我们说一下路由中间件的使用。


开启路由配置


因为路由中间件需要使用到路由,所以我们需要把配置文件(tp6.0.3\\app\\admin\\config\\route.php)中的路由配置项url_route_must设置为true。

\"君兰it20201029153155176.jpg\"/

一旦开启了admin应用的强制使用路由,先前默认的访问admin控制器的路径url将会失效,这样就要给需要访问的控制器方法设置路由url,否则就会提示路由不存在。


设置路由


给应用admin下的控制器index.php,添加如下代码


declare (strict_types = 1);\n\nnamespace app\\admin\\controller;\n\nuse think\\Request;\n\nclass index\n{\n    /**\n     * 显示资源列表\n     *\n     * @return \\think\\Response\n     */\n    public function index()\n    {\n\n        $title = 'hello 君兰IT!';\n\n\n        return $title;\n\n    }\n    public function login(){\n        return '这是登录页';\n\n    }\n}


创建一个路由文件(tp6.0.3\\app\\admin\\route\\app.php),文件内容如下


use think\\facade\\Route;\n\nRoute::get('think', function () {\n    return 'hello,ThinkPHP6!';\n});\n\nRoute::group('', function () {\n    Route::get('test', 'index/index');\n    //group里的路由都可以访问到中间件   \n\n})->middleware(\\app\\middleware\\AdminCheck::class);\n//group外面的路由都禁止访问中间件\nRoute::get('login', 'index/login');

路由设置,使控制器方法index访问中间件,禁止login访问。


整个文件目录结构如下图所示

\"360截图20201029155836017.jpg\"/


路由中间件的使用


在全局是间件中,应用的每个控制器方法都会访问到中间件,但是在路由中间件中,我们可以通过路由的设置限制控制器的方法是否要访问中间件。如在上面的控制器tp6.0.3\\app\\admin\\controller\\index.php,有index和login两个方法,我们要给index访问中间件,禁止login访问。


访问index


\"360截图20201029161843111.jpg\"/


访问login

\"360截图20201029161929912.jpg\"/


下载完整代码

提取码:f6j7 


来源:君兰IT(QQ/微信:644828230),转载请注明出处!


本文地址:https://www.junlan365.com/show/id/12.html


最新文章
热点文章