我試圖middleware在我的中使用 aSlim route但我有一個(gè)錯(cuò)誤:致命錯(cuò)誤:未捕獲的 ArgumentCountError:函數(shù) Api\Middleware\Auth::__invoke() 的參數(shù)太少,通過了 2 個(gè)我正在努力:索引文件<?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); }}我正在閱讀和復(fù)制文檔,但無法修復(fù)該錯(cuò)誤。
1 回答
慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
根據(jù)您在 Slim 中鏈接的中間件的文檔,要么是帶有兩個(gè)參數(shù)的函數(shù),要么是帶有帶有__invoke兩個(gè)參數(shù)的魔術(shù)方法的對(duì)象。傳遞的參數(shù)是Psr\Http\Message\ServerRequestInterface和Psr\Http\Server\RequestHandlerInterface。
您的中間件實(shí)現(xiàn)需要 3 個(gè)參數(shù)。
它應(yīng)該如下所示:
class Auth {
public function __invoke($request, $handler) {
echo "Middleware";
return $handler->handle($request);
}
}
- 1 回答
- 0 關(guān)注
- 148 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
