Help us understand the problem. What is going on with this article?

Laravel入門学習ノート part7 『シーディング』

前回、part6 でテーブル作成しましたが、データが入っていないのでせっかくなのでシーディングで入れてみます。

今回の内容

シーディング
データ挿入
※part6で作成したテーブルを使用します。

シーディングとは

seeding
データベースに初期データやダミーデータなどのレコードを挿入できる機能。

シーディングするためのファイルをシーダー(seeder)という。

シーダーファイル作成

下記コマンドでファイル名を指定して実行。
今回はFruitsTableSeederという名前で作成する。

php artisan make:seeder FruitsTableSeeder

実行すると/database/seedsフォルダに指定したファイル名で作成される。

FruitsTableSeeder
<?php
use Illuminate\Database\Seeder;

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

runメソッドが用意されているのでここにinsert処理を書いていく。

FruitsTableSeeder
public function run(){
  $param = [
    'name' => 'バナナ',
    'price' => '120'
  ];
  DB::table('fruits')->insert($param);

  $param = [
    'name' => 'リンゴ',
    'price' => '250'
  ];
  DB::table('fruits')->insert($param);
}

シーダーファイルを登録

このままだとシーダーが作成されただけで動いてくれない。
DatabaseSeeder.phpに登録することでシーディングコマンドで実行されるようになる。

登録の仕方はDatabaseSeeder.phpにサンプルが書いてあるので同じように書く。

DatabaseSeeder.php
class DatabaseSeeder extends Seeder{
  public function run(){
    // $this->call(UserSeeder::class);
    $this->call(FruitsTableSeeder::class);
  }
}

シーディング実行

コマンドを実行すると登録したシーダーが実行される。

php artisan db:seed

確認

レコードが入ってればOK
image.png

kide
主に備忘録を書いていきます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away