Unity(C#)初心者・入門者向けチュートリアル ひよこのたまご

AndroidやiOS向けアプリを簡単に作れるゲーム開発環境Unity(ユニティ)の使い方を、チュートリアル方式で一緒に学びましょう!

【Laravel】シーディング(Seeding)機能でデータベースにデータを登録したい!

PHPバージョン:7.1.14
Laravelバージョン:5.7.9

データベースのデータを最初から用意し登録しておくことを
シーディング(Seeding)と言います!(日本語訳「種まき」)
LaravelにもSeedingは用意されています!


シーダーファイルを作成

Seedingを行うには、
まずシーダーファイルを作成する必要があります。

php artisan make:seeder ArticlesSeeder

こちらのartisanコマンドでシーダーファイルは作成できます。
database>seedsディレクトリに、
ArticlesSeeder.phpファイルが作成されています。

<?php

use Illuminate\Database\Seeder;

class ArticlesSeeder extends Seeder
{
    public function run()
    {
        //
    }
}

database>seeds>ArticlesSeeder.php

シーダーファイルにはrunメソッドが用意されています!
このrunメソッドの中に登録したいデータを書いていきます!

    public function run()
    {
        $param = [
            'title' => '【Laravel】Controllerの使い方',
            'body' => '今回はコントローラーの使い方についてです!',
        ];
        DB::table('articles')->insert($param);

        $param = [
            'title' => '【Laravel】 Viewの使い方',
            'body' => '今回はビューの使い方についてです!',
        ];
        DB::table('articles')->insert($param);

        $param = [
            'title' => '【Laravel】 Modelの使い方',
            'body' => '今回はモデルの使い方についてです!',
        ];
        DB::table('articles')->insert($param);
    }

database>seeds>ArticlesSeeder.php

Seedingの実行

それではSeedingを実行したいと思います!
その前にシーダーファイルを登録する必要があります!
database>seedsディレクトリにデフォルトで用意されている
DatabaseSeeder.phpファイルに登録します!

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
//***** 開始 *****
        $this->call(ArticlesSeeder::class);
//***** 終了 *****
    }
}

database>seeds>DatabaseSeeder.php

継承しているSeederクラスのcallメソッドで
シーダーファイルは登録されます。
それではartisanコマンドでシーディングを実行しましょう。

$ php artisan db:seed
Seeding: ArticlesSeeder
Database seeding completed successfully.

成功です。
MySQLで確認してみます。

mysql> select * from event;
mysql> select * from articles;
+----+-------------------------------------+------------+------------+-----------------------------------------------------------------+
| id | title                               | created_at | updated_at | body                                                            |
+----+-------------------------------------+------------+------------+-----------------------------------------------------------------+
|  1 | 【Laravel】Controllerの使い方       | NULL       | NULL       | 今回はコントローラーの使い方についてです!                      |
|  2 | 【Laravel】 Viewの使い方            | NULL       | NULL       | 今回はビューの使い方についてです!                              |
|  3 | 【Laravel】 Modelの使い方           | NULL       | NULL       | 今回はモデルの使い方についてです!                              |
+----+-------------------------------------+------------+------------+-----------------------------------------------------------------+
3 rows in set (0.00 sec)

無事シーダーファイルの内容を登録することができました!

今回はここまでです、ありがとうございました〜