[Laravel] Fakerを使って、簡単に会社名、サイト名、住所のテストデータを作成する

2019年4月2日ITLaravel, PHP

導入の仕方はこちらを参考にさせていただきました。

参考:
Faker@PHPでダミーデータを作る

欲しいダミーデータは、下記です。

ログインユーザー、漢字、メール、パスワード、郵便場号、会社名、部署、住所、電話番号、URL

Faker をそのまま使うと、気になったのは、下記でした。

・会社名は「有限会社 近藤」などになる
・住所のアドレスの先頭に郵便番号が入る → こちらで修正
・部署が見当たらない → こちらで作成

※部署は本家サイトで探して、”bs”, “catchPhrase” では定義なしエラーになりました。
https://github.com/fzaninotto/Faker#fakerprovideren_uscompany

結果ですが、Seeder ファイルはこのようになり、、、

delete();
        //日本語指定
        $faker = Faker\Factory::create('ja_JP');

        $department = ["総務部", "人事部", "営業部", "海外事業部", "IT事業部"];

        for($i=0; $i<10; $i++)
        {
            User::create([
                'name'=>$faker->userName(),
                'kanji'=>$faker->name(),
                'email'=>$faker->email(),
                'password'=>$faker->password(),
                'post'=>$faker->regexify('[1-9]{3}-[0-9]{4}'),
                'company'=>$faker->company(),
                'department'=>$department[mt_rand(0, count($department)-1)],
                'address'=>substr($faker->address(), 9),
                'phone'=>$faker->phoneNumber(),
                'url'=>$faker->url(),
            ]);
        }
    }
}

出力結果はこのようになります。

laravel-faker1.png

ひとこと

Faker めちゃくちゃ便利ですね。テストデータに何を入れるかをいちいち考えなくてよくて、メソッドとfor文で事足りますね。

スポンサーリンク

Posted by nobuhiro harada