マイグレーションを行なった後に手作業でダミーのデータを作っていた時があった。
ダミーデータを何個も手作業で入れるのは流石にどう考えても非効率である。
そんなへっぽこな私がテーブルに簡単にダミーデータの入れ方を学習したので私みたいに無知だった人は是非ここで学んでもらってこれからの学習を楽にしてもらいたい。
①シーダーファイルの作成
初期状態のファイルにデータを入れることを「シーディング」という。そのための処理を行なって行きたい。
ターミナルを開き
php artisan make:seeder (ここにシーダーファイル名をいれる)
と入力。これで
App->database->seedsフォルダ内に作られることになる。
②シーディング処理を行う。
ファイル内を除くとupと呼ばれるメソッドがあるのに気づくだろう。その中にテーブルに予め作っておいたカラムに該当するデータを入れていくというわけだ。
use Illuminate\Support\Facades\DB; ←この文章を追加しないとDBとの接続ができない。
public function run()
{
$param=[
'name'=>'taro',
'mail'=>'taro@yamada.jp',
'age' =>12,
];
DB::table('people')->insert($param);
}
テーブル内には「name」「mail」「age」のカラムを入れていたのでそのカラムに対してそれぞれ配列で
配列で値を入れている。今回は配列の変数を$paramと置いている。
そして最後にデータベース内にあるテーブルに対して変数paramとして挿入すれば良い。
③シーディングの実行
これだけではデータベースにデータを入れ込めてはいない。
このシーディングファイルとseedsファイル内にあるDatabaseSeeder.phpと紐づける必要がある。
〜DatabaseSeeder.phpファイルの中〜
public function run()
{
$this->call(①でつくったファイル名::class);
}
これで紐付けが完了した。最後にターミナルで
php artisan db::seed
と入力すればデータベースに先ほど入れたデータが入力されたことになる。