@@ -119,6 +119,7 @@ public function appendRequestRules(array $controllersInfo)
119
119
$ reflectionMethod = new ReflectionMethod ($ controller , $ method );
120
120
$ params = $ reflectionMethod ->getParameters ();
121
121
$ customRules = $ this ->customParamsDocComment ($ reflectionMethod ->getDocComment ());
122
+ $ controllersInfo [$ index ]['rules ' ] = [];
122
123
123
124
foreach ($ params as $ param ) {
124
125
if (!$ param ->getType ()) {
@@ -133,18 +134,16 @@ public function appendRequestRules(array $controllersInfo)
133
134
//throw $th;
134
135
}
135
136
136
- if ($ requestClass && method_exists ($ requestClass , 'rules ' )) {
137
- try {
138
- $ controllersInfo [$ index ]['rules ' ] = $ this ->flattenRules ($ requestClass ->rules ());
139
- } catch (Throwable $ e ) {
140
- // disabled. This only works when the rules are defined as 'required|integer' and that too in single line
141
- // doesn't work well when the same rule is defined as array ['required', 'integer'] or in multiple lines such as
142
- // If your rules are not populated using this library, then fix your rule to only throw validation errors and not throw exceptions
143
- // such as 404, 500 inside the request class.
144
- $ controllersInfo [$ index ]['rules ' ] = $ this ->rulesByRegex ($ requestClassName );
137
+ foreach (config ('request-docs.request_methods ' ) as $ requestMethod ) {
138
+ if ($ requestClass && method_exists ($ requestClass , $ requestMethod )) {
139
+ try {
140
+ $ controllersInfo [$ index ]['rules ' ] = array_merge ($ controllersInfo [$ index ]['rules ' ], $ this ->flattenRules ($ requestClass ->$ requestMethod ()));
145
141
146
- if (config ('request-docs.debug ' )) {
147
- throw $ e ;
142
+ } catch (Throwable $ e ) {
143
+ $ controllersInfo [$ index ]['rules ' ] = array_merge ($ controllersInfo [$ index ]['rules ' ], $ this ->rulesByRegex ($ requestClassName , $ requestMethod ));
144
+ if (config ('request-docs.debug ' )) {
145
+ throw $ e ;
146
+ }
148
147
}
149
148
}
150
149
}
@@ -211,9 +210,9 @@ public function flattenRules($mixedRules)
211
210
return $ rules ;
212
211
}
213
212
214
- public function rulesByRegex ($ requestClassName )
213
+ public function rulesByRegex ($ requestClassName, $ methodName )
215
214
{
216
- $ data = new ReflectionMethod ($ requestClassName , ' rules ' );
215
+ $ data = new ReflectionMethod ($ requestClassName , $ methodName );
217
216
$ lines = file ($ data ->getFileName ());
218
217
$ rules = [];
219
218
0 commit comments