ThinkPHP6路由中间件详解
时间:2020年10月29日
在前面的《ThinkPHP6全局中间件详解》中,我们讲了全局中间件的创建,配置及使用方法。在前面的基础上,接下来我们说一下路由中间件的使用。
开启路由配置
因为路由中间件需要使用到路由,所以我们需要把配置文件(tp6.0.3\\app\\admin\\config\\route.php)中的路由配置项url_route_must设置为true。
一旦开启了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访问。
整个文件目录结构如下图所示
路由中间件的使用
在全局是间件中,应用的每个控制器方法都会访问到中间件,但是在路由中间件中,我们可以通过路由的设置限制控制器的方法是否要访问中间件。如在上面的控制器tp6.0.3\\app\\admin\\controller\\index.php,有index和login两个方法,我们要给index访问中间件,禁止login访问。
访问index
访问login
提取码:f6j7
来源:君兰IT(QQ/微信:644828230),转载请注明出处!
本文地址:https://www.junlan365.com/show/id/12.html
最新文章
热点文章