STEP2.サンプルデータの挿入(シーダー)

2018/10/12

今回は前回作成したテーブルにサンプルデータを入れていきます。

「従業員」テーブルはループ処理を使って Faker で入れます。

「部署」テーブルはレコードが少ないので手動でいれます。

 

手順

1)シーダーファイルの作成
2)シーダーファイルの編集
3)DatabaseSeeder.php 編集
4)シーダー実行
5)動作確認

 

1)シーダーファイルの作成

「部署」のシーダーファイルを作成

php artisan make:seed DeptsTableSeeder

「従業員」のシーダーファイルを作成

php artisan make:seed EmployeesTableSeeder

 

2)シーダーファイルの編集

「部署」テーブルのレコードは数がそれほど多くないので手動で入れます。

:
  public function run()
  {
  \DB::table('depts')->delete();

  \DB::table('depts')->insert([
  'dept_id' => '1',
  'dept_name' => '総務部'
  ]);

  \DB::table('depts')->insert([
  'dept_id' => '2',
  'dept_name' => '経理部'
  ]);

  \DB::table('depts')->insert([
  'dept_id' => '3',
  'dept_name' => '人事部'
  ]);

  \DB::table('depts')->insert([
  'dept_id' => '4',
  'dept_name' => '開発部'
  ]);

  \DB::table('depts')->insert([
  'dept_id' => '5',
  'dept_name' => '営業部'
  ]);

  }
:

「従業員」テーブルには300レコードほどサンプルデータを入れます。

Faker を使います。

:
  public function run()
  {
  \DB::table('employees')->delete();

  $faker = Faker\Factory::create('ja_JP');

  $dept = ['1', '2', '3', '4', '5'];

  for ($i = 0; $i < 300; $i++) {
  \DB::table('employees')->insert([
  'dept_id' => $faker->randomElement($dept),
  'name' => $faker->name(),
  'address' => $faker->address(),
  'email' => $faker->email() ,
  'old' => $faker->randomNumber(2),
  'tel' => $faker->phoneNumber()
  ]);
  }
  }
:

 

3)DatabaseSeeder.php 編集

上記で作成したシーダーファイルを大元のシーダーファイル(DatabaseSeeder.php)から呼び出します。

  public function run()
  {
  $this->call(EmployeesTableSeeder::class);
  $this->call(DeptsTableSeeder::class);
  }

 

4)シーダー実行

php artisan db:seed

 

5)動作確認

select * from depts;
select * from employees limit 0,10;

で確認

シーダーについては以上です。

次回はいよいよコーディング作業に入ります。

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-チュートリアル, 中級