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 を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。