diff --git a/laravel/routing/route.php b/laravel/routing/route.php index 128e936d..82824a40 100644 --- a/laravel/routing/route.php +++ b/laravel/routing/route.php @@ -78,38 +78,18 @@ public function __construct($method, $uri, $action, $parameters = array()) */ protected function parameters($uri, $action, $parameters) { - $wildcards = 0; - $defaults = (array) array_get($action, 'defaults'); - // We need to determine how many of the default paramters should be merged - // into the parameter array. First, we will count the number of wildcards - // in the route URI and then merge the defaults. - foreach (array_keys(Router::patterns()) as $wildcard) - { - $wildcards += substr_count($uri, $wildcard); - } - - $needed = $wildcards - count($parameters); - // If there are less parameters than wildcards, we will figure out how // many parameters we need to inject from the array of defaults and // merge them in into the main array for the route. - if ($needed > 0) + if (count($defaults) > count($parameters)) { - $defaults = array_slice($defaults, count($defaults) - $needed); + $defaults = array_slice($defaults, count($parameters)); $parameters = array_merge($parameters, $defaults); } - // If the final number of parameters doesn't match the count of the - // wildcards, we'll pad parameter array with null to cover any of - // the default values that were forgotten. - if (count($parameters) !== $wildcards) - { - $parameters = array_pad($parameters, $wildcards, null); - } - $this->parameters = $parameters; }