Laravel 7: Seeder y Factory

php artisan make:seeder UsersTableSeeder
use App\User;
...
User::create([
   'name' => 'Pepito Pérez',
   'email' => 'pepitoperez@gmail.com',
   'password' => bcrypt('12345678')
]);

factory(User::class, 10)->create();

Si User::create da el create problemas hacerlo con insert:
DB::table('users')->insert([
            'name' => 'xxxx',
            'email' => 'xxx@gmail.com',
            'password' => bcrypt('12345678')
        ])

Más información en:
https://laravel.com/docs/7.x/seeding
Por defecto Laravel te crear el UserFactory.php:
$factory->define(User::class, function (Faker $faker) {
   return [
  nbsp;  'name' => $faker->name,
  nbsp;  'email' => $faker->unique()->safeEmail,
  nbsp;  'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
  nbsp;  'remember_token' => Str::random(10),
   ];
});


php artisan make:seeder EntriesTableSeeder
use App\Entry;
public function run()
{
   factory(Entry::class, 100)->create();
}


Crear el factory para Entry:
php artisan make:factory EntryFactory
use App\Entry;
...
$factory->define(Entry::class, function (Faker $faker) {
   return [
      'title' => $faker->sentence,
      'content' => $faker->text,
      'user_id' => 1
   ];
});

Por supuesto para que se ejecuten estos seeders hay que llamarlos desde el DatabaseSeeders.php:
public function run()
{
   $this->call(UsersTableSeeder::class);
   $this->call(EntriesTableSeeder::class);
}

Para borrar toda la BD, generarla de nuevo y que tire de los seeds:
php artisan migrate:fresh --seed

No hay comentarios:

Publicar un comentario