diff --git a/src/Http/Request.php b/src/Http/Request.php index ea46f42..757ef13 100644 --- a/src/Http/Request.php +++ b/src/Http/Request.php @@ -1043,13 +1043,13 @@ public function getQuery(string $key, mixed $default = null): mixed * Retorna o corpo da requisição como stdClass (API Express.js). * * Método preferido para acesso ao body em handlers de rota. - * Retorna um stdClass vazio para métodos sem body (GET, HEAD, OPTIONS, DELETE). + * Retorna um stdClass vazio para métodos sem body (GET, HEAD, OPTIONS). * * @return stdClass */ public function getBodyAsStdClass(): stdClass { - if (in_array($this->method, ['GET', 'HEAD', 'OPTIONS', 'DELETE'])) { + if (in_array($this->method, ['GET', 'HEAD', 'OPTIONS'])) { return new stdClass(); } return $this->body; diff --git a/tests/Http/RequestTest.php b/tests/Http/RequestTest.php index 1afe77a..cb3936c 100644 --- a/tests/Http/RequestTest.php +++ b/tests/Http/RequestTest.php @@ -277,4 +277,18 @@ public function testBodyMethodEmptyForGet(): void $this->assertInstanceOf(\stdClass::class, $request->body()); $this->assertEmpty((array) $request->body()); } + + public function testDeleteBodyIsNotDiscarded(): void + { + $_POST = ['reason' => 'test']; + + $request = new Request('DELETE', '/users/1', '/users/1'); + + $body = $request->getBodyAsStdClass(); + + $this->assertInstanceOf(\stdClass::class, $body); + $this->assertEquals('test', $body->reason); + + $_POST = []; + } }