애플리케이션을 구축할 때 규모는 소규모, 중간 규모, 대규모입니다. 애플리케이션에서 테스트 데이터를 가지고 놀 수 있다는 것은 불가피하고 중요합니다.
그럼 두 가지 시나리오를 통해 간단한 것부터 고급까지 시작해 보겠습니다.
나. 모든 애플리케이션 또는 대부분의 애플리케이션에는 사용자가 있어야 합니다. 때로는 사용자를 관리자 또는 일반 사용자로 분류/태그하고 싶을 때가 있습니다. 따라서 아래에 나열된 테이블 사양을 사용하여 100명의 사용자가 포함된 간단한 시더를 생성해 보겠습니다.
자, 이제 갑니다.
users 테이블에 시드하려면 물론 Laravel이 생성한 기본 사용자 마이그레이션 테이블이 있어야 합니다.
이 데모를 위해 테이블 마이그레이션은 다음과 같아야 합니다.
public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->string('password'); $table->enum('user_type', ['user','admin'])->default('user'); $table->rememberToken(); $table->timestamps(); }); }
사용자 테이블에 대한 시더 클래스를 생성합니다.
php artisan make:seeder UserSeeder
그래서 방금 생성한 시더에 대한 값을 생성하려면 모든 Laravel 애플리케이션과 함께 제공되는 기본 Faker 패키지를 사용해야 합니다.
한 번에 100명의 사용자를 생성하려면 먼저 for-loop를 수행하고 다음과 같이 가짜/의사 데이터를 각 열에 전달합니다.
use Faker\Factory as Faker; public function run() { $faker = Faker::create(); for(i = 0; i $faker->firstName(), 'last_name' => $faker->lastName(), 'email' => $faker->email(), 'password' => bcrypt('hello1234'), // we might want to set this to a value we can easily remember for testing sake 'user_type' => $faker->randomElement(['admin', 'user']) ]); } }
이를 데이터베이스에 시드하려면 아래 명령을 실행해야 합니다.
php artisan db:seed --class=UserSeeder
이렇게 하면 100명의 사용자가 생성되어 데이터베이스에 삽입됩니다.
그렇게 간단합니다.
이제 더 발전된 솔루션을 만나보세요.
다음을 만들어야 합니다.
직원 테이블
Schema::create('staff', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->foreignId('department_id')->references('id')->on('departments'); $table->foreignId('user_id')->references('id')->on('users'); $table->timestamps(); });부서 테이블:
Schema::create('staff', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->foreignId('department_id')->references('id')->on('departments'); $table->foreignId('user_id')->references('id')->on('users'); $table->timestamps(); });따라서 데이터베이스에 이러한 테이블을 포함하려면 마이그레이션을 실행해야 합니다.
이제 UserSeeder 클래스에 대해 앞서 언급한 핵심 사항을 구현하겠습니다.
Schema::create('staff', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->foreignId('department_id')->references('id')->on('departments'); $table->foreignId('user_id')->references('id')->on('users'); $table->timestamps(); });마지막 두 개의 중요 항목을 함께 구현해야 합니다.
Schema::create('staff', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->foreignId('department_id')->references('id')->on('departments'); $table->foreignId('user_id')->references('id')->on('users'); $table->timestamps(); });설명:
Schema::create('staff', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->foreignId('department_id')->references('id')->on('departments'); $table->foreignId('user_id')->references('id')->on('users'); $table->timestamps(); });그런 다음 다음을 실행합니다.
Schema::create('staff', function (Blueprint $table) { $table->id(); $table->string('first_name'); $table->string('last_name'); $table->string('email'); $table->foreignId('department_id')->references('id')->on('departments'); $table->foreignId('user_id')->references('id')->on('users'); $table->timestamps(); });궁금한 점이 있으시면 주저하지 마시고 남겨주세요. 즐거운 코딩하세요!
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3