@@ -158,6 +158,8 @@ protected function buildModelReplacements(array $replace)
158
158
}
159
159
}
160
160
161
+ $ replace = $ this ->buildFormRequestReplacements ($ replace , $ modelClass );
162
+
161
163
return array_merge ($ replace , [
162
164
'DummyFullModelClass ' => $ modelClass ,
163
165
'{{ namespacedModel }} ' => $ modelClass ,
@@ -188,6 +190,56 @@ protected function parseModel($model)
188
190
return $ this ->qualifyModel ($ model );
189
191
}
190
192
193
+ /**
194
+ * Build the model replacement values.
195
+ *
196
+ * @param array $replace
197
+ * @param string $modelClass
198
+ * @return array
199
+ */
200
+ protected function buildFormRequestReplacements (array $ replace , $ modelClass )
201
+ {
202
+ $ storeRequestClass = $ updateRequestClass = 'Request ' ;
203
+ $ namespace = 'Illuminate \\Http ' ;
204
+
205
+ if ($ this ->option ('requests ' )) {
206
+ $ storeRequestClass = 'Store ' . class_basename ($ modelClass ) . 'Request ' ;
207
+ $ this ->call ('make:request ' , [
208
+ 'name ' => $ storeRequestClass ,
209
+ ]);
210
+ $ updateRequestClass = 'Update ' . class_basename ($ modelClass ) . 'Request ' ;
211
+ $ this ->call ('make:request ' , [
212
+ 'name ' => $ updateRequestClass ,
213
+ ]);
214
+ $ namespace = 'App \\Http \\Requests ' ;
215
+ }
216
+ if ($ this ->option ('request ' )) {
217
+ $ storeRequestClass = $ updateRequestClass = class_basename ($ modelClass ) . 'Request ' ;
218
+ $ this ->call ('make:request ' , [
219
+ 'name ' => $ storeRequestClass
220
+ ]);
221
+ $ namespace = 'App \\Http \\Requests ' ;
222
+ }
223
+
224
+ $ namespacedRequests = $ namespace . '\\' . $ storeRequestClass . '; ' ;
225
+ if ($ storeRequestClass != $ updateRequestClass ) {
226
+ $ namespacedRequests .= "\r\nuse " . $ namespace . "\\" . $ updateRequestClass . "; " ;
227
+ }
228
+
229
+ return array_merge ($ replace , [
230
+ '{{ storeRequest }} ' => $ storeRequestClass ,
231
+ '{{storeRequest}} ' => $ storeRequestClass ,
232
+ '{{ updateRequest }} ' => $ updateRequestClass ,
233
+ '{{updateRequest}} ' => $ updateRequestClass ,
234
+ '{{ namespacedStoreRequest }} ' => $ namespace . '\\' . $ storeRequestClass ,
235
+ '{{namespacedStoreRequest}} ' => $ namespace . '\\' . $ storeRequestClass ,
236
+ '{{ namespacedUpdateRequest }} ' => $ namespace . '\\' . $ updateRequestClass ,
237
+ '{{namespacedUpdateRequest}} ' => $ namespace . '\\' . $ updateRequestClass ,
238
+ '{{ namespacedRequests }} ' => $ namespacedRequests ,
239
+ '{{namespacedRequests}} ' => $ namespacedRequests ,
240
+ ]);
241
+ }
242
+
191
243
/**
192
244
* Get the console command options.
193
245
*
@@ -203,6 +255,8 @@ protected function getOptions()
203
255
['model ' , 'm ' , InputOption::VALUE_OPTIONAL , 'Generate a resource controller for the given model. ' ],
204
256
['parent ' , 'p ' , InputOption::VALUE_OPTIONAL , 'Generate a nested resource controller class. ' ],
205
257
['resource ' , 'r ' , InputOption::VALUE_NONE , 'Generate a resource controller class. ' ],
258
+ ['request ' , null , InputOption::VALUE_NONE , 'Generate a FormRequest class. ' ],
259
+ ['requests ' , null , InputOption::VALUE_NONE , 'Generate FormRequest classes for store and update. ' ],
206
260
];
207
261
}
208
262
}
0 commit comments