请问有人用过限流webman-throttle吗

德玛西亚

问题描述

这里详细描述问题

我在用路由分组中限流操作

程序代码

这个我的代码
    Route::group('/login', function () {

            Route::any('/account_login', [\app\openapi\controller\LoginController::class, 'account_login']);

        })->setParams(['visit_rate' => '20/m',
        ])->middleware(\app\middleware\Throttle::class);;

截图报错信息里报错文件相关代码

操作系统及workerman/webman等框架组件具体版本

用的环境是php8.0
"workerman/webman-framework": "v1.5.16",

697 3 0
3个回答

latin

提示webman的一个方法不存在,很容易联想到webman版本低,升级webman应该就搞定了

小W

Route::group()

返回的是Webman\Route自身实例,并不是 Webman\Route\Route,所以调用setParams的对象是 Webman\Route\Route对象。

  • 德玛西亚 2024-08-06

    大佬确实这个原因,但是我引用
    use Webman\Route\Route;
    Route::group('/openapi', function () {
    Route::group('/v1', function () {
    // Route::resource('/login', \app\openapi\controller\LoginController::class, ['account_login']);
    Route::group('/login', function () {
    Route::any('/account_login', [\app\openapi\controller\LoginController::class, 'account_login']);
    })->middleware(\app\middleware\Throttle::class)->setParams();
    });

    });
    就会提示group和any等不存在这是什么问题呢

  • 德玛西亚 2024-08-06

    Error: Call to undefined method Webman\Route\Route::group() in D:\phpstudy_pro\WWW\iot_pc\app\openapi\config\route.php:17

  • 小W 2024-08-06

    看看这两个类的源码吧,不是这么用的

  • 德玛西亚 2024-08-06

    好的谢谢

zgm1189
Route::group('/sms', function () {
      Route::any('/send', ['app\controller\platform\SmsController', 'sendSms'])
      ->setParams(['visit_rate' => "1/m"])
      ->middleware([
         app\middleware\Throttle::class
      ]);
   });
  • 德玛西亚 2024-08-23

    感谢,已经解决

  • 德玛西亚 2024-08-28

    我最近使用发现一个问题,在一个路由组中设置一个路由有限流,一个没有限流,请求没有限流的路由然后再请求有限流的路由就直接不能访问了,这个问题你遇到了吗?

×
🔝