diff --git a/src/AGerault/HTTP/Middlewares/HttpMethodMiddleware.php b/src/AGerault/HTTP/Middlewares/HttpMethodMiddleware.php index 2ac06ca..8824141 100644 --- a/src/AGerault/HTTP/Middlewares/HttpMethodMiddleware.php +++ b/src/AGerault/HTTP/Middlewares/HttpMethodMiddleware.php @@ -11,10 +11,8 @@ class HttpMethodMiddleware implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { - $method = $request->getAttribute('_method') ?? $request->getMethod(); - - if ($request->getAttribute('_method')) { - $request = $request->withMethod($method); + if (array_key_exists('_method', $request->getParsedBody())) { + $request = $request->withMethod($request->getParsedBody()['_method']); } return $handler->handle($request); diff --git a/tests/Unit/HTTP/HttpMethodMiddlewareTest.php b/tests/Unit/HTTP/HttpMethodMiddlewareTest.php index 50f7869..aac0360 100644 --- a/tests/Unit/HTTP/HttpMethodMiddlewareTest.php +++ b/tests/Unit/HTTP/HttpMethodMiddlewareTest.php @@ -6,7 +6,7 @@ it('should change the request method', function () { $request = new ServerRequest("POST", "/"); - $request = $request->withAttribute("_method", "PUT"); + $request = $request->withParsedBody(["_method" => "PUT"]); $middleware = new HttpMethodMiddleware(); $handler = new DummyHandler();