From 77ba9f165ea41336fea90ade5d7270a5951c4eb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Sessing=C3=B8?= Date: Fri, 11 Dec 2015 18:21:00 +0100 Subject: [PATCH] [BUGFIX] Fixed get params warning. --- src/Pecee/SimpleRouter/RouterBase.php | 34 ++++++++++++++++++--------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/Pecee/SimpleRouter/RouterBase.php b/src/Pecee/SimpleRouter/RouterBase.php index b3cf31d..5a7de95 100644 --- a/src/Pecee/SimpleRouter/RouterBase.php +++ b/src/Pecee/SimpleRouter/RouterBase.php @@ -1,10 +1,8 @@ matchRoute($this->request); - if($routeMatch && !($routeMatch instanceof RouterGroup)) { + if($routeMatch) { if(count($route->getRequestMethods()) && !in_array($this->request->getMethod(), $route->getRequestMethods())) { $routeNotAllowed = true; @@ -132,9 +130,9 @@ class RouterBase { $routeNotAllowed = false; - $this->loadedRoute = $routeMatch; - $routeMatch->loadMiddleware($this->request); - $routeMatch->renderRoute($this->request); + $this->loadedRoute = $route; + $route->loadMiddleware($this->request); + $route->renderRoute($this->request); break; } } @@ -221,6 +219,18 @@ class RouterBase { return $this; } + public function arrayToParams(array $getParams = null, $includeEmpty = true) { + if(is_array($getParams) && count($getParams) > 0) { + foreach($getParams as $key=>$val) { + if(!empty($val) || empty($val) && $includeEmpty) { + $getParams[$key] = $key.'='.$val; + } + } + return join('&', $getParams); + } + return ''; + } + protected function processUrl($route, $method = null, $parameters = null, $getParams = null) { $url = '/' . trim($route->getUrl(), '/'); @@ -254,7 +264,7 @@ class RouterBase { $url = rtrim($url, '/') . '/'; if($getParams !== null && count($getParams)) { - $url .= '?'.Url::arrayToParams($getParams); + $url .= '?' . $this->arrayToParams($getParams); } return $url; @@ -328,13 +338,15 @@ class RouterBase { $url = array($controller); if(is_array($parameters)) { - ArrayUtil::append($url, $parameters); + foreach($parameters as $key => $value) { + array_push($url,$value); + } } $url = '/' . trim(join('/', $url), '/') . '/'; - if(is_array($getParams)) { - $url .= '?' . Url::arrayToParams($getParams); + if($getParams !== null && count($getParams)) { + $url .= '?' . $this->arrayToParams($getParams); } return $url;