@@ -201,12 +201,6 @@ public function generate($name, $parameters = array(), $absolute = false)
201
201
{
202
202
$ debug = array ();
203
203
204
- if (is_object ($ name )) {
205
- $ displayName = get_class ($ name );
206
- } else {
207
- $ displayName = $ name ;
208
- }
209
-
210
204
foreach ($ this ->all () as $ router ) {
211
205
// if $router does not implement ChainedRouterInterface and $name is not a string, continue
212
206
if ($ name && !$ router instanceof ChainedRouterInterface) {
@@ -223,9 +217,7 @@ public function generate($name, $parameters = array(), $absolute = false)
223
217
try {
224
218
return $ router ->generate ($ name , $ parameters , $ absolute );
225
219
} catch (RouteNotFoundException $ e ) {
226
- $ hint = ($ router instanceof VersatileGeneratorInterface)
227
- ? $ router ->getRouteDebugMessage ($ name , $ parameters )
228
- : "Route ' $ displayName' not found " ;
220
+ $ hint = $ this ->getErrorMessage ($ name , $ router , $ parameters );
229
221
$ debug [] = $ hint ;
230
222
if ($ this ->logger ) {
231
223
$ this ->logger ->info ('Router ' .get_class ($ router )." was unable to generate route. Reason: ' $ hint': " .$ e ->getMessage ());
@@ -237,12 +229,28 @@ public function generate($name, $parameters = array(), $absolute = false)
237
229
$ debug = array_unique ($ debug );
238
230
$ info = implode (', ' , $ debug );
239
231
} else {
240
- $ info = " No route ' $ displayName ' found " ;
232
+ $ info = $ this -> getErrorMessage ( $ name ) ;
241
233
}
242
234
243
235
throw new RouteNotFoundException (sprintf ('None of the chained routers were able to generate route: %s ' , $ info ));
244
236
}
245
237
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
+
246
254
/**
247
255
* {@inheritdoc}
248
256
*/
0 commit comments