为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Slim Framework (v4) 中间件时出错

使用 Slim Framework (v4) 中间件时出错

PHP
茅侃侃 2022-07-16 17:45:11
我试图middleware在我的中使用 aSlim route但我有一个错误:致命错误:未捕获的 ArgumentCountError:函数 Api\Middleware\Auth::__invoke() 的参数太少,通过了 2 个我正在努力:索引文件<?phpuse Psr\Http\Message\ResponseInterface as Response;use Psr\Http\Message\ServerRequestInterface as Request;use Slim\Factory\AppFactory;use Api\Middleware\Auth;require __DIR__ . '../../../vendor/autoload.php';$app = AppFactory::create();$app->add(new Auth);$app->get('/', function (Request $request, Response $response, $args) {    $response->getBody()->write("Start Project");    return $response;});$app->run();中间件文件<?phpnamespace Api\Middleware;class Auth {  public function __invoke($request, $response, $next) {    echo "Middleware";    return $next($request, $response);  }}我正在阅读和复制文档,但无法修复该错误。
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

根据您在 Slim 中链接的中间件的文档,要么是带有两个参数的函数,要么是带有带有__invoke两个参数的魔术方法的对象。传递的参数是Psr\Http\Message\ServerRequestInterface和Psr\Http\Server\RequestHandlerInterface。


您的中间件实现需要 3 个参数。


它应该如下所示:


class Auth {

    public function __invoke($request, $handler) {

        echo "Middleware";

        return $handler->handle($request);

    }

}


查看完整回答
反对 回复 2022-07-16
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信