【Laravel】Seederを使ってユーザをDBに追加

Laravel
スポンサーリンク


ID、パスワードが必要なユーザをDBに登録する際にphpMyAdminで登録するとパスワードが暗号化されていない状態で登録されてしまいます。

その状態でLravelでログインしようとすると、こんなエラーになってしまいます。

LaravelにはSeederというデータを投入するための便利なものがあるので、それを使ってユーザを登録してみます。

Seederを作成

$ php artisan make:seeder UsersSeeder

database/seeds/UsersSeeder.phpが作成されます。

作成されたSeederに追加するデータを記述

insert([
            'name' => 'user01',
            'email' => 'user01@hogehoge.com',
            'password' => bcrypt('password01'),
        ]);
    }
}

パスワードをbcryptで暗号化しています。

database/seeds/DatabaseSeeder.phpにクラスを登録します。

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call([
            UsersSeeder::class,
        ]);
    }
}

Seederをクラス指定して実行します。

$ php artisan db:seed --class=UsersSeeder