使用Route::fallback无法设置中间件,且没有执行到全局中间件

风无言

使用Route::fallback后返回的不是一个route对象,无法连缀添加中间件。请问如何可以让中间件或者全局中间件作用于fallback设置的路由。或者有没有其他方法设置一个通配路由,使所有请求都走到一个控制器?

1070 1 1
1个回答

walkor

Route::fallback 一般用于处理404请求,404不会匹配任何路由,也就不会有中间件。

  • 风无言 2022-08-16

    那常规的路由有什么写法可以接收所有请求吗?我这边是写了一个图片压缩的服务,图片路径都不是固定的,通过fallback都能走到处理的控制器。现在希望通过中间件来统计每个图片处理请求所花费的时间。大佬有什么好的思路吗?

  • walkor 2022-08-16

    试下

    Route::any('[{path:.+}]', [app\controller\XXX::class, '方法名']);
  • 风无言 2022-08-16

    FastRoute\BadRouteException: Static route "/log-reader" is shadowed by previously defined variable route "(.+)" for method "GET" in E:\docker-php-webman-main-v2\application\vendor\nikic\fast-route\src\DataGenerator\RegexBasedAbstract.php:95
    和log-reader扩展冲突了
    谢谢大佬解答,我这还是把耗时统计放进业务里吧

  • mon 2022-08-16

    Route::any('[{path:.+}]', [app\controller\XXX::class, '方法名']);

    这个路由定义在其他自定义路由 后面

  • 风无言 2022-08-17

    屏蔽掉log-reader路由是可以的,不过这个是个第三方插件,默认会在config/route之后加载路由

年代过于久远,无法发表回答
🔝