Merge pull request #509 from skipperbent/v4-request-same-routes

[BUGFIX] Issue #439: Fixed multiple request-type on same routes.
This commit is contained in:
Simon Sessingø
2021-03-23 14:57:17 +01:00
committed by GitHub
2 changed files with 21 additions and 5 deletions

View File

@@ -262,8 +262,8 @@ class Router
/**
* Load routes
* @throws NotFoundHttpException
* @return void
* @throws NotFoundHttpException
*/
public function loadRoutes(): void
{
@@ -350,7 +350,7 @@ class Router
{
$this->debug('Routing request');
$methodNotAllowed = false;
$methodNotAllowed = null;
try {
$url = $this->request->getRewriteUrl() ?? $this->request->getUrl()->getPath();
@@ -370,7 +370,12 @@ class Router
/* Check if request method matches */
if (\count($route->getRequestMethods()) !== 0 && \in_array($this->request->getMethod(), $route->getRequestMethods(), true) === false) {
$this->debug('Method "%s" not allowed', $this->request->getMethod());
$methodNotAllowed = true;
// Only set method not allowed is not already set
if ($methodNotAllowed === null) {
$methodNotAllowed = true;
}
continue;
}
@@ -475,9 +480,9 @@ class Router
/**
* @param \Exception $e
* @throws HttpException
* @throws \Exception
* @return string|null
* @throws \Exception
* @throws HttpException
*/
protected function handleException(\Exception $e): ?string
{

View File

@@ -210,4 +210,15 @@ class RouterRouteTest extends \PHPUnit\Framework\TestCase
$this->assertTrue(true);
}
public function testSameRoutes()
{
TestRouter::get('/recipe', 'DummyController@method1')->name('add');
TestRouter::post('/recipe', 'DummyController@method2')->name('edit');
TestRouter::debugNoReset('/recipe', 'post');
TestRouter::debug('/recipe', 'get');
$this->assertTrue(true);
}
}