Laravel学習帳

Laravel5.2の学習帳です。開発環境はXAMPP for Windows 5.6.19 / 本番環境はさくらサーバー(スタンダード)

基礎知識

シーダーについて(応用)

2017/11/21

マイグレーションでテーブルを作成すると、次はサンプルのレコードを入れます。

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

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

シーダーについて(基本)

サンプルデータはシーダーファイルのrunメソッドの中に記述したのですが、もっと便利なやり方があります。

Faker というパッケージを使うとサンプルデータを自動で生成できます。

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

 

Fakerについて

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

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

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

項目 コマンド
名前 $faker->name
住所 $faker->address
ユーザー名 $faker->userName
パスワード $faker->password
メールアドレス $faker->email
電話番号 $faker->phoneNumber
日付 $faker->date($format='Y-m-d',$max='now')
クレジット番号 $faker->creditCardNumber
配列の値をランダムに抽出 $faker->randomElement($gender)
2桁の数字をランダムに表示 $faker->randomNumber(2)
10~100のランダム値 $faker->numberBetween(10,100)
正規表現 $faker->regexify('[1-9]{3}-[0-9]{4}')

 

チュートリアル

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

シーダーについて(基本)

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

 

手順

1)シーダーファイル「EmployeesTableSeeder.php」の編集
2)シーダー実行
3)動作確認

 

1)シーダーファイル「EmployeesTableSeeder.php」の編集

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

#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を利用したシーダーの使い方は以上です。

 

-基礎知識