DatabaseSeeder.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace Database\Seeders;
  3. use App\Models\User;
  4. use App\Models\Category;
  5. use App\Models\FormData;
  6. use App\Models\Comments;
  7. use Illuminate\Database\Console\Seeds\WithoutModelEvents;
  8. use Illuminate\Database\Seeder;
  9. class DatabaseSeeder extends Seeder
  10. {
  11. use WithoutModelEvents;
  12. /**
  13. * Seed the application's database.
  14. */
  15. public function run(): void
  16. {
  17. User::where('email', 'test@example.com')->delete();
  18. $user = User::factory()->create([
  19. 'name' => 'Test User',
  20. 'email' => 'test@example.com',
  21. 'password' => bcrypt('password'),
  22. ]);
  23. $categories = Category::factory()->count(5)->create();
  24. FormData::factory()->count(50)->create()->each(function ($formData) use ($categories, $user) {
  25. $formData->category()->associate($categories->random());
  26. $formData->save();
  27. Comments::factory()->count(rand(0, 3))->create([
  28. 'commentable_id' => $formData->id,
  29. 'commentable_type' => FormData::class,
  30. 'user_id' => rand(0, 1) ? $user->id : null,
  31. ]);
  32. });
  33. $this->command->info('Database seeded successfully!');
  34. }
  35. }