シーダーについて(Faker)

2019/08/06

サンプルデータを入れることをシーダーといいます。

前回、シーダーの基本的な使い方について学びました。

基本編ではサンプルデータを直接シーダーファイルに記述したのですが、もっと便利なやり方があります。

Faker というライブラリを使うとフェイクデータを自動で生成することができます。

今回は Faker を使ったシーダーのやり方についてエントリーします。

 

Fakerについて

Laravel には Faker がはじめから組み込まれています。

なので、Composer を使ってインストールする必要はありません。

Faker のよく利用されるコマンドは以下になります。

項目 記述 出力結果
名前 $faker->name 斎藤 くみ子
住所 $faker->address 7443156 奈良県村山市東区加納町木村10-1-5
ユーザー名 $faker->userName kudo.kyosuke
パスワード $faker->password DKVA_6K03S-=@|
メールアドレス $faker->email kyosuke53@uno.com
電話番号 $faker->phoneNumber 0410-021-281
日付 $faker->date($format='Y-m-d',$max='now') 1975-09-03
クレジット番号 $faker->creditCardNumber 5540806828245734
配列の値をランダムに抽出 $faker->randomElement($gender)
2桁の数字をランダムに表示 $faker->randomNumber(2) 12
10~100のランダム値 $faker->numberBetween(10,100) 58
正規表現 $faker->regexify('[1-9]{3}-[0-9]{4}') 735-4103
性別 $faker->randomElement($array=['男性','女性']) 男性
誕生日 $faker->dateTimeBetween('-80 years', '-20years')->format('Y-m-d') 20歳から80歳になるように
文字系 $faker->text() 100文字

 

演習

前回シーダーの基本チュートリアルで「employees」テーブルにサンプルデータを入れました。

今回はシーダーファイルを編集して Faker を使ってサンプルデータを入れてみます。

 

手順

 

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

警告事前にモデルを作成しておく必要があります。
DBの操作について(Eloquent)~基本~

上記のコードを簡単に解説します

#1 テーブルの削除

クエリービルダーを使って一旦テーブルを削除します。

当然、前回やったシーダーで入れたサンプルデータも消えます。


DB::table('employees')->delete();

 

#2 Fakerの使用

引数に日本語を指定。


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

 

#3 所属IDのサンプルデータ

randomElement(array)でこちらで用意した配列から生成可能。


 $dept = ['1','2'];
:
'dept_id' => $faker->randomElement($dept),

 

#4 サンプルレコードの挿入回数

10件のデータを作成します。


for ($i = 0; $i < 10; $i++) {
:
}

 

2)シーダー実行

artisanコマンドで編集したシーダーファイルを実行します。


php artisan db:seed

 

3)動作確認

SQLコマンドでテーブルの中身を確認します。


> select * from employees;

上記のような感じになればOKです。

Fakerを利用したシーダーの使い方は以上です。

 
Laravelのシーダーについてもっと理解を深めたい方は PHPフレームワーク Laravel入門 をお勧めします。

ポイント
シーダー関連の掲載ページ

Chapter 5 データベースの利用
5.1 データベースを準備する
5.2 DBクラスの利用
5.3 クエリビルダ
5.4 マイグレーションとシーディング

本庄マサノリ

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

>> Twitter をフォローする

 

-基礎知識