Skip to content

Commit e24b428

Browse files
committed
Merge pull request #77 from symfony-cmf/display_name
Display name
2 parents 847da9a + b0b84b9 commit e24b428

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

ChainRouter.php

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -217,9 +217,7 @@ public function generate($name, $parameters = array(), $absolute = false)
217217
try {
218218
return $router->generate($name, $parameters, $absolute);
219219
} catch (RouteNotFoundException $e) {
220-
$hint = ($router instanceof VersatileGeneratorInterface)
221-
? $router->getRouteDebugMessage($name, $parameters)
222-
: "Route '$name' not found";
220+
$hint = $this->getErrorMessage($name, $router, $parameters);
223221
$debug[] = $hint;
224222
if ($this->logger) {
225223
$this->logger->info('Router '.get_class($router)." was unable to generate route. Reason: '$hint': ".$e->getMessage());
@@ -231,12 +229,28 @@ public function generate($name, $parameters = array(), $absolute = false)
231229
$debug = array_unique($debug);
232230
$info = implode(', ', $debug);
233231
} else {
234-
$info = "No route '$name' found";
232+
$info = $this->getErrorMessage($name);
235233
}
236234

237235
throw new RouteNotFoundException(sprintf('None of the chained routers were able to generate route: %s', $info));
238236
}
239237

238+
private function getErrorMessage($name, $router = null, $parameters = null)
239+
{
240+
if ($router instanceof VersatileGeneratorInterface) {
241+
$displayName = $router->getRouteDebugMessage($name, $parameters);
242+
} elseif (is_object($name)) {
243+
$displayName = method_exists($name, '__toString')
244+
? (string) $name
245+
: get_class($name)
246+
;
247+
} else {
248+
$displayName = (string) $name;
249+
}
250+
251+
return "Route '$displayName' not found";
252+
}
253+
240254
/**
241255
* {@inheritdoc}
242256
*/

0 commit comments

Comments
 (0)