RouteResource: simplified the findUrl method (issue: #666)

This commit is contained in:
sessingo
2023-05-06 21:07:58 +02:00
parent 00d1c534de
commit d3b1577095
5 changed files with 21 additions and 12 deletions
@@ -91,6 +91,7 @@ abstract class LoadableRoute extends Route implements ILoadableRoute
$parameters = array_fill_keys($matches[1], null);
}
}
$this->parameters = $parameters;
return $this;
@@ -68,15 +68,19 @@ class RouteResource extends LoadableRoute implements IControllerRoute
*/
public function findUrl(?string $method = null, $parameters = null, ?string $name = null): string
{
$url = parent::findUrl($method, $parameters, $name);
$url = array_search($name, $this->names, true);
$action = array_search($name, $this->names, true);
$parametersUrl = '';
if ($action !== false) {
return $url . $this->urls[$action];
if ($parameters !== null && count($parameters) > 0) {
$parametersUrl = join('/', $parameters) . '/';
}
return $url;
if ($url !== false) {
return rtrim($this->url . $parametersUrl . $this->urls[$url], '/') . '/';
}
return $this->url . $parametersUrl;
}
protected function call($method): bool