【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)
無事シーダーファイルの内容を登録することができました!
今回はここまでです、ありがとうございました〜