@@ -77,24 +77,34 @@ public function handle(): void
77
77
}
78
78
79
79
if ($ this ->config ['enable_formdata ' ]) {
80
- $ rulesParameter = null ;
80
+ $ rulesParameter = collect ($ reflectionMethod ->getParameters ())
81
+ ->filter (function ($ value , $ key ) {
82
+ $ value = $ value ->getType ();
81
83
82
- foreach ($ reflectionMethod ->getParameters () as $ parameter ) {
83
- if (! $ parameterType = $ parameter ->getType ()) {
84
- continue ;
85
- }
86
-
87
- $ requestClass = $ parameterType ->getName ();
84
+ return $ value && is_subclass_of ($ value ->getName (), FormRequest::class);
85
+ })
86
+ ->first ();
88
87
89
- if (is_subclass_of ($ requestClass , FormRequest::class)) {
90
- $ rulesParameter = new $ requestClass ();
91
- }
88
+ if (! $ rulesParameter ) {
89
+ continue ;
92
90
}
93
91
94
- if ($ rulesParameter instanceof FormRequest) {
95
- $ requestRules = $ rulesParameter ->rules ();
92
+ $ rulesParameter = $ rulesParameter ->getType ()->getName ();
93
+ $ rulesParameter = new $ rulesParameter ;
94
+
95
+ $ requestRules = [];
96
+ $ rules = method_exists ($ rulesParameter , 'rules ' ) ? $ rulesParameter ->rules () : [];
96
97
97
- $ requestRules = array_keys ($ requestRules );
98
+ foreach ($ rules as $ fieldName => $ rule ) {
99
+ $ requestRules [] = $ fieldName ;
100
+
101
+ if (is_string ($ rule )) {
102
+ $ rule = preg_split ('/\s*\|\s*/ ' , $ rule );
103
+ }
104
+
105
+ if (in_array ('confirmed ' , $ rule )) {
106
+ $ requestRules [] = $ fieldName .'_confirmation ' ;
107
+ }
98
108
}
99
109
}
100
110
0 commit comments