@@ -290,11 +290,12 @@ public static function seed(string $fileToSeed): bool
290290 $ data = Yaml::parseFile ($ fileToSeed );
291291 $ tableName = str_replace ('.yml ' , '' , path ($ fileToSeed )->basename ());
292292
293+ $ seeds = $ data ['seeds ' ] ?? [];
293294 $ currentConnection = $ data ['connection ' ] ?? null ;
294295
295- $ seeds = $ data ['seeds ' ] ?? [];
296296 $ count = $ seeds ['count ' ] ?? 1 ;
297297 $ seedsData = $ seeds ['data ' ] ?? [];
298+ $ seedsModel = $ seeds ['model ' ] ?? null ;
298299
299300 $ timestamps = $ data ['timestamps ' ] ?? true ;
300301 $ softDeletes = $ data ['softDeletes ' ] ?? false ;
@@ -306,7 +307,25 @@ public static function seed(string $fileToSeed): bool
306307 static ::$ connection ::table ($ tableName , null , $ currentConnection )->truncate ();
307308 }
308309
309- if (is_array ($ seedsData [0 ] ?? null )) {
310+ if (empty ($ seedsData ) && !$ seedsModel ) {
311+ $ seedsModel = \Illuminate \Support \Str::studly (
312+ \Illuminate \Support \Str::singular ($ tableName )
313+ );
314+ }
315+
316+ if ($ seedsModel ) {
317+ if (strpos ($ seedsModel , 'App\Models ' ) === false ) {
318+ $ seedsModel = "App\Models \\$ seedsModel " ;
319+ }
320+
321+ if (!class_exists ($ seedsModel )) {
322+ throw new \Exception ("The model $ seedsModel does not exist " );
323+ }
324+
325+ for ($ i = 0 ; $ i < $ count ; $ i ++) {
326+ $ finalDataToSeed [] = $ seedsModel ::__seeder ();
327+ }
328+ } else if (is_array ($ seedsData [0 ] ?? null )) {
310329 $ finalDataToSeed = $ seedsData ;
311330 } else {
312331 for ($ i = 0 ; $ i < $ count ; $ i ++) {
0 commit comments