DBのカラムにダミーデータを入れる
seederを生成するコマンド
php artisan make:seeder ******TableSeeder
******
の部分は事前に作成したLaravelのモデル名になりますが
モデルの命名規則に従う必要があります。
モデルの命名規則
記法 | 複数or単数 | 例 |
---|---|---|
アッパーキャメル | 単数 | UserData |
ダミーを実行するには
seederファイルを編集する
<?php
use Illuminate\Database\Seeder;
//動かすseederのファイル名(拡張子は外す)
class ********** extends Seeder
{
public function run()
{
DB::table('テーブル名')->insert([
[
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列'
],
[
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列'
],
[
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列',
'カラム名' => '入力する値または文字列'
],
]);
}
}
テーブルへデータを挿入(insert)するLaravelのDBファザード
を実行します
一つの[ ]
の中身に1レコード分のダミーデータを記述します
レコードまたはダミーを増やす場合は ,
(カンマ)で区切ります。
DatabaseSeeder.phpを編集する
database/seeds/DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
// $this->call(UsersTableSeeder::class);
}
}
DatabaseSeeder.php
ファイルが見つからない場合は、
新しいファイルを作成しDatabaseSeeder.php
の名前にリネームしてから
上記のコードをコピーして利用してください。
DatabaseSeeder.phpの変更箇所
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(実行するseederファイル名を入力::class);
}
}
DatabaseSeeder.php のコードを実行するseederファイルの名前に
書き換えなければ処理が実行されません。
エラーの対策と対処方法
カラム(列)のデータ型に注意
シーダーで入力しようとしている値
とカラム(列)
へ
設定されているデータ型
が異なる場合には
シーダーの処理にエラーが発生します
カラム(列)は空にするとエラーになる
一つのレコードに存在するカラムは全て埋めなければエラーが発生します
例えば一つのレコードにカラム(列)が10個存在する場合は、
一つのレコードに10個のダミーを用意する必要があります
自動で出力される値のダミーは不要
自動増分されるIDなどのincrements
や
作成日時を出力するtimestamps
などのデータ型は
自動で値が埋まるためダミーで埋める必要がありません。
上記の例えに言い換えるならば、ダミーを8つ作り、2つは省略します
データ型 | 種類 |
---|---|
integer | 数値(整数) |
decimal | 数値(精度の高い小数) |
float | 数値(浮動小数) |
string | 文字(短い文字列) |
text | 文字(長い文字列) |
date | 日付 |
datetime | 日時 |
time | 時刻 |
timestamp | タイムスタンプ |
binary | バイナリ |
boolean | 真偽 |
シーダーを実行する
php artisan db:seed
最後にコマンドを実行することで
seederファイルのダミーレコードを
データベースに反映することができます。