不知道算不算BUG, 通过路由给控制器的方法设置中间件, 总是会有这样的问题, 比如:
//config/route.php
Route::any('/test/user/index', [app\test\controller\UserController::class, 'index'])->middleware(
app\test\middleware\Test::class
);
访问 http://localhost:8787/test/user/index 会正常走中间件,
但是如果把URL里的控制器名称改成大写, 访问 http://localhost:8787/test/User/index, 就会绕过中间件, 直接到控制器了
如果把路由里的User直接改成大写, 那么小写的user又可以绕过中间件.
有啥好解决办法吗?
我能想到的就是禁用默认路由, 然后自己设置所有路由, 但是比较麻烦.
小写走的是路由配置,大写走的默认路由,没问题
要么关闭默认路由,要么在config/middleware.php 里给test应用设置路由
看了下fast-route的issue,这种要用正则表达式
这样不区分大小写了,
/test/user/index
/test/User/index
等都能访问到嗯嗯, 哎呀, 这真是个好办法, 正则可以忽略大小写, 太感谢了 大佬 Onz