[Laravel] Seederを使ってテストデータを挿入

Laravelにはデータベースにテスト用のデータを作成するSeederという機能が搭載されています。名前、メールアドレスなど様々なテストデータはファクトリという機能に入っており、これらを連動させると、簡単に大量のテストデータを作成することができます。

開発環境

Laravel 7.x , MySQL 8.x , CentOS 7.x , Apache 2.4

前提条件

Laravelプロジェクトを作成し、MySQLの設定が終わっている。
データベースpostsが作られ、id , name , memo , created_at , updated_atが作られている。

Seederクラスの作成

ターミナルからseederの作成を行います。

PostsTableSeederというように、テーブル名を頭文字大文字の複数形で記載します。

database/seedsの中にPostsTableSeeder.phpファイルが生成されます。

Seederクラスの編集

PostsTableSeeder.phpに以下を記載します。

20という数字は20件を意味しています。

これから各カラムにどのようなデータを挿入するかを指定してきます。

Factoryの設定

Factoryファイルの作成

Factoryファイルの編集

database/factories/PostFactory.phpを編集します。

今回はnameにtitleを、memoにrealTextを設定してみます。

Fakerで利用できるデーターはいろいろ準備されており、下記のようなものが使えます。
name , email , password , country , address ,phoneNumber , company , realText …
かなりの項目が用意されています。詳しくは下記の記事が参考になります。
Qiita [Laravel5.1]Fakerチートシート

DatabaseSeeder.phpの設定

Seederの実行

データの確認

phpMyAdminでpostsテーブルを見ると、下記のようなデータが作成されています。
2020-05-07_08h28_01



Author: webmaster