(Laravel) DB【シーディングの解説】

laravel-seeding

 

Laravelについてのメモ書き、
とくにシーディングについて

 

シーディングとは

シーディングとは、
マイグレーションでテーブルを作成した後、
初期のレコードを自動的に作成する機能

 

シーダーファイルの作成

シーディングは、シーダーファイルと言うファイルを元に行う
シーダーファイル作成の書式は以下。

php artisan make:seeder ファイル名

 

 

シーダーファイル配置先

作成したシーダーファイルは下記に格納される。

database/seeds

 

 

作成したシーダーファイルのデフォルト

シーダーファイルのデフォルトの記述は下記のようになっている。

<?php

use Illuminate\Database\Seeder;

class PeopleTableSeeder extends Seeder
{

    /**
     * Run the database seeds.
     *
     * @return void
     */

    public function run()

    {

        //

    }

}

 

上記、runメソッドの中に、レコード作成の処理を記述する。

public function run()
    {

        $param = [
                ‘name’ => ‘taro’,
                ‘age’ => ’12’,
        ];

        DB::table(‘people’)->insert($param);

    }

 

 

シーダーファイルの登録

シーダーファイルができたら、
ファイルが実行されるように登録する必要がある。

database/seeds/に存在する、DatabaseSeeder.php を編集する。
runメソッド内に、先ほど自分で作成したシーダーファイルを登録する行を追加する。

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder

{

    /**
     * Seed the application's database.
     *
     * @return void
     */

    public function run()
    {

        $this->call(PeopleTableSeeder::class);  //この行を追加

    }

}

 

seederクラスのcallメソッドを呼び出し、
引数に、作成したシーダークラスを指定する。

$this->call(シーダクラス::class);

 

上記により、シーディング実行時、
指定したクラスのrunメソッドが呼び出され、シーディングが実行される。

 

シーディングを実行する

シーディングを実行するコマンドは下記

phpartisan db:seed

 

上記コマンドで、DatabaseSeeder.phpのrunメソッドが実行され、
登録されてあるシーダーファイルのrunが続けて実行される。

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。