diff --git a/src/Extension/UrlExtension.php b/src/Extension/UrlExtension.php index 691d5dc..598c782 100644 --- a/src/Extension/UrlExtension.php +++ b/src/Extension/UrlExtension.php @@ -249,12 +249,13 @@ PATTERN; if ($default ?? false) { $value = $default; } - elseif ($this->enforceExistingArguments) { + elseif ($this->enforceExistingArguments && ! strpos($route, sprintf('[/{%s:', $variable)) ) { throw new \RuntimeException(sprintf("Error while preparing route %s : could not match variable '%s' into given arguments ( %s )", $route, $variable, json_encode($arguments))); } } - $search[ $item[0] ] = $value; + $search[$item[0]] = $value ?? ""; + } $route = str_replace(array_keys($search), array_values($search), $route);