定义了几个路由,想复用一个中间件,根据参数载入不同设置,不知有没有办法给中间件传递一个参数呢?谢谢~
类似这样
config/route.php
Route::any('/test', [class, method])->setParams(['some_key' =>'value']);
中间件
class AccessControl implements MiddlewareInterface { public function process(Request $request, callable $handler): Response { if ($route = $request->route) { var_export($route->param('some_key')); } return $handler($request); } }
明白,谢谢大神,不过那个setParams在官方教程居然没有这个知识点,望补全
+1
另外,好像只有any支持,group和resource不支持吗?
感谢反馈 已加 https://www.workerman.net/doc/webman/middleware.html#%E8%B7%AF%E7%94%B1%E5%90%91%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%BC%A0%E5%8F%82
只有路由对象才有setParams方法, group和resource 返回的并不是路由对象
了解,不过建议group和resource也支持setParams方法,这样更方便一点
类似这样
config/route.php
中间件
明白,谢谢大神,不过那个setParams在官方教程居然没有这个知识点,望补全
+1
另外,好像只有any支持,group和resource不支持吗?
感谢反馈 已加 https://www.workerman.net/doc/webman/middleware.html#%E8%B7%AF%E7%94%B1%E5%90%91%E4%B8%AD%E9%97%B4%E4%BB%B6%E4%BC%A0%E5%8F%82
只有路由对象才有setParams方法, group和resource 返回的并不是路由对象
了解,不过建议group和resource也支持setParams方法,这样更方便一点