@@ -18,24 +18,33 @@ public static function resolveForRoute($container, $route)
18
18
$ parameters = $ route ->parameters ();
19
19
20
20
foreach ($ route ->signatureParameters (Model::class) as $ parameter ) {
21
- $ class = $ parameter ->getClass ();
22
-
23
- if (! $ route ->parameter ($ parameter ->name ) instanceof Model) {
24
- $ model = $ container ->make ($ class ->name );
21
+ if ($ route ->parameter ($ parameter ->name ) instanceof Model) {
22
+ continue ;
23
+ }
25
24
26
- $ parameterName = array_key_exists ($ parameter ->name , $ parameters ) ? $ parameter ->name : null ;
25
+ $ model = $ container -> make ($ parameter ->getClass () ->name ) ;
27
26
28
- // check if parameter name used was camelized in routed callback method
29
- if (! $ parameterName ) {
30
- $ snakeParamName = snake_case ($ parameter ->name );
31
- $ parameterName = array_key_exists ($ snakeParamName , $ parameters ) ? $ snakeParamName : null ;
32
- }
27
+ $ parameterName = static ::checkForParameter ($ parameter ->name , $ parameters ) ?:
28
+ static ::checkForParameter (snake_case ($ parameter ->name ), $ parameters );
33
29
34
- if ($ parameterName ) {
35
- $ value = $ model -> where ( $ model -> getRouteKeyName () , $ parameters [ $ parameterName ])-> firstOrFail ();
36
- $ route -> setParameter ( $ parameterName , $ value );
37
- }
30
+ if ($ parameterName ) {
31
+ $ route -> setParameter ( $ parameterName , $ model -> where (
32
+ $ model -> getRouteKeyName () , $ parameters [ $ parameterName ]
33
+ )-> firstOrFail ());
38
34
}
39
35
}
40
36
}
37
+
38
+ /**
39
+ * Return the parameter name if it exists in the given parameters.
40
+ *
41
+ * @param string $name
42
+ * @param array $parameters
43
+ * @return string|null
44
+ */
45
+ protected static function checkForParameter ($ name , $ parameters )
46
+ {
47
+ return array_key_exists ($ name , $ parameters )
48
+ ? $ name : null ;
49
+ }
41
50
}
0 commit comments