diff --git a/Slim/Http/Request.php b/Slim/Http/Request.php index 926e4cd64..26744e525 100644 --- a/Slim/Http/Request.php +++ b/Slim/Http/Request.php @@ -240,9 +240,9 @@ public function getMethod() $body = $this->getParsedBody(); if (is_object($body) && property_exists($body, '_METHOD')) { - $this->method = $this->filterMethod($body->_METHOD); + $this->method = $this->filterMethod((string)$body->_METHOD); } elseif (is_array($body) && isset($body['_METHOD'])) { - $this->method = $this->filterMethod($body['_METHOD']); + $this->method = $this->filterMethod((string)$body['_METHOD']); } if ($this->getBody()->eof()) { @@ -286,7 +286,7 @@ public function withMethod($method) $method = $this->filterMethod($method); $clone = clone $this; $clone->originalMethod = $method; - $clone->method = null; // <-- Force method override recalculation + $clone->method = $method; return $clone; } diff --git a/tests/Http/RequestTest.php b/tests/Http/RequestTest.php index 0fc043932..d39d7a228 100644 --- a/tests/Http/RequestTest.php +++ b/tests/Http/RequestTest.php @@ -70,7 +70,7 @@ public function testWithMethod() { $request = $this->requestFactory()->withMethod('PUT'); - $this->assertAttributeEquals(null, 'method', $request); + $this->assertAttributeEquals('PUT', 'method', $request); $this->assertAttributeEquals('PUT', 'originalMethod', $request); }